Once your wallet is funded, use these endpoints to track balances, positions, and yield.Documentation Index
Fetch the complete documentation index at: https://docs.groundtech.co/llms.txt
Use this file to discover all available pages before exploring further.
Fetch a wallet
| Field | Description |
|---|---|
status | idle, withdrawal_active, rebalance_active, withdrawal_and_rebalance_active, creating, or failed |
balance.totalUsd | Gross customer-owned wallet value, including economically-owned funds that are still in transit |
balance.withdrawableUsd | Conservative amount that can be withdrawn now |
balance.reservedUsd | Customer-owned value currently reserved by active withdrawal or rebalance work |
balance.earnedUsd | Lifetime yield earned |
positions[] | Per-position balances with USD values and target allocations |
positions array includes non-zero cash or bridge positions plus yield sources in your strategy allocation.
yield_source— a strategy position. These entries includepct.cash— idle USDC sitting in the wallet’s deposit addresses. These entries omitpct.bridge— funds currently being bridged between chains. These entries omitpct.
positions[].valueUsd equals balance.totalUsd.
Balances are computed from refreshed onchain holdings + price feeds and cached for fast reads. They may briefly lag deposits or withdrawals.
When idle USDC moves into yield
Idle USDC is swept into yield positions through rebalances. Rebalances only run when the available idle USDC can produce executable yield-entry legs. Ground currently requires at least 5 USDC per rebalance leg. If a wallet has less than 5 USDC available as idle USDC, those funds remain idle and withdrawable instead of being swept into yield. If idle cash is split across multiple strategy targets, each resulting target leg must meet the 5 USDC minimum. For example, a wallet with an 8 USDC idle balance and a 50/50 strategy would split into two 4 USDC target legs, so no rebalance legs are created. A 50/50 strategy needs about 10 USDC of idle cash for both target legs to clear the minimum.Balance definitions
totalUsdanswers: “How much value does the customer own?”withdrawableUsdanswers: “How much can the customer withdraw now?”reservedUsdanswers: “How much customer-owned value is currently reserved by active wallet work?”earnedUsdanswers: “How much lifetime yield has this wallet earned?”
totalUsd, withdrawableUsd, and reservedUsd are intentionally not interchangeable. Value can remain customer-owned while still being unavailable to withdraw immediately, for example when a withdrawal or rebalance is settling.
Internally, Ground keeps that value represented through explicit transfer boundaries. When funds move from one representation to another, the transfer row stays active until the destination representation is durably written or observed. That is what keeps totalUsd from dipping during internal protocol steps.
reservedUsd timing
reservedUsd reflects the amount reserved by active withdrawal and rebalance work. It is set when the system reserves liquidity for a wallet workflow.
The reservation is not always cleared immediately when a transaction broadcasts. It stays active until Ground’s ledger and holdings refresh confirm the next representation of the funds. In practice:
- Workflow initiated:
reservedUsdincreases,withdrawableUsddecreases by the same amount,totalUsdstays the same. - Workflow completed:
reservedUsdmay remain briefly while the next ledger or holdings refresh catches up. - Refresh catches up:
reservedUsddecreases back toward zero, andtotalUsdreflects the settled holdings. - Workflow cancelled:
reservedUsddecreases,withdrawableUsdincreases back to its pre-workflow level.
0 <= withdrawableUsd <= totalUsd always holds.
The invariant “customer-owned value is always represented somewhere” also always holds.
Customer-facing valuation notes
syrup-usdcis valued from live onchain share-to-assets conversion and can move continuously.- Morpho ERC-4626 vaults exposed by the live catalog are valued from live onchain ERC-4626 conversion reads.
- Treat NAV-based positions as protocol valuations, not guaranteed 1:1 USDC marks at every instant.
POST /v2/wallets/:id/withdrawal-preview (see Withdraw Funds).
Yield metrics
You can monitor yield through the wallet response:balance.earnedUsd— lifetime yield earned since wallet creationbalance.totalUsd— total value including accumulated yield
GET /v2/wallets/:id/yield (see Calculating Yield Accrual).
List wallets
nextCursor field for fetching subsequent pages. See API Conventions for details.
Look up a wallet
Look up a wallet byrequestId or label using the list endpoint’s filters (provide exactly one of id, requestId, or label):
{ "data": [...], "nextCursor": ... }); a matching wallet appears in data.
Balance and position webhooks
Subscribe to these events for real-time balance updates:portfolio_wallet.balance.updated— fires when wallet balance changesportfolio_wallet.position.updated— fires when a position’s value or weight changes