Skip to main content
In a direct integration, users interact with an existing Ground gVault and receive its shares in their existing wallets. Ground does not deploy a fee wrapper for this path.

1. Create a server-side API key

Create an API key in the Ground Developer Portal. Store it only on your backend.
Never expose this key in a browser or mobile client.

2. Discover available gVaults

Retrieve the environment’s yield-source catalogue:
Each returned row is an integration manifest. Its id is the gVaultId used by the allowlist API, while contractAddress is the contract your application calls onchain.
Do not copy production addresses into sandbox configuration. Resolve the catalogue separately in each environment.

3. Allowlist the user’s address

Before the user’s first deposit, call the allowlist endpoint from your backend:
The address can be an EOA, multisig, or contract. A 200 response means the desired state is already confirmed. A 202 response means Ground submitted an onchain allowlist transaction. Poll until confirmed:
Enable deposits only after the response contains "allowed": true.

4. Read the deposit asset

Read the ERC-4626-style asset() method from the gVault contract:
Use the returned token address for the user’s approval and express assets in that token’s native units.

5. Approve and deposit

The user first approves the gVault contract to spend the deposit asset:
Then the user deposits:
Set receiver to the allowlisted address that should receive the gVault shares. The gVault checks the receiver’s access, not merely the transaction sender. Before submitting, you can estimate the output with:

6. Withdraw within current liquidity

Read the user’s immediately available capacity:
Within that capacity, the share owner can call:
For a direct wallet transaction, set owner to the calling wallet. receiver is the address that receives the deposit asset.

7. Request a larger redemption

When the requested exit exceeds current synchronous liquidity, submit an asynchronous redemption:
The transaction returns a requestId. Ground processes queued redemptions onchain. After the request is processed, the same owner claims the proceeds:
Keep the original transaction hash and returned requestId in your operation record until the claim confirms.

8. Remove deposit access

To remove your organization’s grant:
Removing access blocks future deposits after the final organization grant is removed. It does not block the address from withdrawing an existing position.