https://sandbox.groundtech.co for API calls and the chain returned by the
sandbox gVault catalogue for transactions. Sandbox and production are separate
environments with separate IDs, contract addresses, API keys, and webhook
registrations.
Build an environment manifest
At application startup, callGET /v2/gvaults/yield-sources and record:
- API base URL and environment
gVaultId,interface, chain, andcontractAddress- asset contract address, symbol, decimals, and chain ID
Test the direct path
- Add a fresh test address to the selected gVault allowlist.
- Wait for the effective state to become
allowed: true. - Approve and deposit the smallest supported test amount.
- Confirm the share balance at the intended receiver.
- Exercise a synchronous withdrawal when available.
- Exercise request/claim redemption when supported.
- Remove access and verify a new deposit is blocked while exit remains possible.
Test the fee-wrapper path
- Provision a wrapper with a new UUID v4 and nonzero test fee.
- Retry the identical create request to validate idempotency.
- Recover the wrapper by
requestIdand wait forready. - Add a customer address to the wrapper allowlist.
- Deposit and confirm that the customer receives wrapper shares, not gVault shares.
- Reduce the performance fee and change its recipient.
- Remove customer access and verify the existing position can still exit.
Test failure handling
Exercise invalid addresses, unknown IDs, conflictingrequestId payloads,
unconfirmed access, wrong-chain transactions, insufficient balances, and
temporary 429 or 503 responses. Retries should reconcile current state
before resubmission.
Test webhooks
Register a sandbox-only HTTPS endpoint, preserve the one-time secret, verify signatures from the raw body, deduplicate byGround-Event-Id, and compare your
processed events with GET /v2/gvaults/webhooks/events.
Before production, fetch a fresh production catalogue and repeat the manifest
checks. Never promote sandbox contract addresses or webhook secrets.