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

Supported EVM, Solana, TRON, and Stellar deposit addresses are prepared automatically when the wallet is created, independently of its allocation strategy. Stellar account activation and its USDC trustline run in the background. Its deposit address appears once both are ready and deposit monitoring is active. An address is usable once it appears in depositAddresses. Already returned addresses remain usable while setup continues for other networks. An idle wallet can still be preparing addresses for additional networks. Poll Get Wallet while your intended network’s address is absent. Deposit only after that address appears in depositAddresses. See Power Yield for Stellar Balances for the complete Stellar integration 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. On Tempo, send USDC.e only to depositAddresses.tempo, not the wallet’s Ethereum address. Tempo is production-only. The API reports these deposits as token: "usdc", chain: "tempo", and, once completed, cashPositionId: "cash:tempo:usdc". Deposit monitoring runs every 60 seconds; allow additional time for confirmation and accounting.

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. Wait for the Stellar 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