Fetch a wallet
| Field | Description |
|---|---|
balance.totalUsd | Total wallet value (principal + yield) across all positions |
balance.withdrawableUsd | Amount available for immediate withdrawal |
balance.pendingWithdrawalUsd | Value currently encumbered by active withdrawal(s) (see timing note below) |
balance.inTransitUsd | Value currently in transit (e.g. funds being bridged or deployed into a yield position) |
balance.earnedUsd | Cumulative yield earned |
positions[] | Per-position balances with USD values and target allocations |
positions array always includes one entry per yield source in your strategy allocation. It may also include two additional system-managed entries:
cash— idle USDC sitting in the wallet’s deposit addresses that has not yet been deployed into a yield position. This typically appears briefly after a deposit or withdrawal, before the next rebalance cycle invests the funds.in-transit— funds currently being bridged between chains as part of a rebalance or deposit flow.
pct field (since they are not part of the strategy allocation). The sum of all 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.
pendingWithdrawalUsd timing
pendingWithdrawalUsd reflects the total amount encumbered by active (non-terminal) withdrawals. It is set when a withdrawal is initiated and the system reserves liquidity.
Once a withdrawal’s funds have been physically broadcast onchain, the reserved amount is deducted from totalUsd (since the funds have left the wallet) rather than continuing to be held in pendingWithdrawalUsd. In practice:
- Withdrawal initiated:
pendingWithdrawalUsdincreases,withdrawableUsddecreases by the same amount,totalUsdstays the same. - Withdrawal broadcast/completed:
pendingWithdrawalUsddecreases back toward zero,totalUsddecreases by the delivered amount. - Withdrawal cancelled:
pendingWithdrawalUsddecreases,withdrawableUsdincreases back to its pre-withdrawal level.
withdrawableUsd = totalUsd - pendingWithdrawalUsd always holds.
Customer-facing valuation notes
resolv-lpis valued from Resolv’s oracle feed and can be up to ~24 hours stale per Resolv’s documented cadence.syrup-usdcis valued from an onchain ERC-4626 conversion read at request time (typically block-level fresh).- Treat both as NAV-based 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— cumulative 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:
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