Skip to main content
After creating a wallet, fund it by sending a supported stablecoin to the wallet’s deposit addresses.

Fund the wallet

  1. Fetch GET /v2/wallets/{id} and select the returned depositAddresses entry for your funding network. See Supported Chains for accepted stablecoins and network keys.
  2. Send the supported stablecoin to that address on the selected network. In the portal, open Deposit funds and select the blockchain.
  3. Track the deposit through the deposit APIs or webhooks until it reaches completed and the wallet balance updates.

Address readiness

EVM, Solana, and TRON deposit addresses are prepared automatically when the wallet is created, independently of its allocation strategy. Stellar requires a separate setup request after wallet creation. An address is usable once it appears in depositAddresses. Already returned addresses remain usable while setup continues for other networks. addressProvisioning.status reports overall address setup as provisioning, ready, or failed, independently of wallet activity status. An idle wallet can still have addresses provisioning. Poll Get Wallet while your intended network’s address is absent; contact Ground if address setup returns failed. To receive Stellar USDC, call POST /v2/wallets/{id}/deposit-addresses/{chain}/enable with stellar_testnet in sandbox or stellar in a beta-enabled production environment. Complete the resulting organization approval, then read the wallet until the address appears. See Power Yield for Stellar Balances for the complete flow. Always validate the token and network before sending. Use the returned address for that network, including when the same EVM address is returned on multiple chains. Supported Chains describes resource funding requirements.

Minimum amounts

There is no minimum deposit amount. However, small deposits may remain as undeployed cash if deploying them into yield positions is not economically efficient (considering gas costs, minimum trade sizing, and protocol constraints). This minimum is environment-configured and applied per executable rebalance leg: sandbox uses small minimums (e.g. 5 units per leg) so you can test with small amounts, while production minimums are typically higher. See Balances and Yield.

Sandbox

Use the supported test token for the network-specific address, including depositAddresses.ethereum_sepolia, depositAddresses.solana_devnet, depositAddresses.stellar_testnet, or depositAddresses.tron_shasta. See Sandbox funding for faucets and test assets.

Deposit lifecycle

Processing deposits are informational until finality. They can appear in deposit and activity APIs shortly after the source wallet broadcasts the transfer when the destination wallet has no active Ground-managed workflow, but they are not included in balance.totalUsd, balance.withdrawableUsd, or positions until ledger posting completes. Wallets with active rebalances, withdrawals, or protocol workflows may wait until final attribution before a deposit appears. As deposits settle, the wallet’s balance.totalUsd and positions update. Wallets with automatic rebalancing deploy cash toward percentage targets. Otherwise deposits stay in cash until the partner calls /allocate.

Deposit response

Ethereum Sepolia

Solana Devnet

Solana responses use base58 addresses and transaction signatures while preserving the same deposit shape:

TRON

TRON deposits use the same response shape with token: "usdt", chain: "tron" (or "tron_shasta" in sandbox), and a TRON base58 fromAddress. Transaction hashes are hexadecimal without an EVM 0x prefix. Completed deposits identify cash as cash:tron:usdt or cash:tron_shasta:usdt; both belong to the usdt:tron group.

Stellar

Stellar deposits use the same response shape with token: "usdc", the environment’s Stellar chain key, and a Stellar G-address. Enable Stellar deposits and wait for the address to appear before sending funds.

List deposits

Supports cursor-based pagination. See API Conventions.

Fetch a deposit by ID

Look up by transaction hash

Optionally scope to a specific chain:

Deposit webhooks

Subscribe to portfolio_wallet.deposit.status_changed for real-time deposit tracking. See Webhooks.

Next steps