POST /v2/wallets returns immediately with status: "creating". Poll GET /v2/wallets/{id} for wallet activation and use only deposit addresses returned for the intended network. Address readiness is independent of wallet activity status. Stellar deposits require a separate one-time setup after the wallet becomes active.
Create a portfolio wallet
Place each yield source under its catalog
allocationGroup from GET /v2/wallets/yield-sources. Use cash to keep funds uninvested in that group; omitted groups start at 100% cash. See Allocation groups for network compatibility and How Auto Rebalancing Works to choose automatic or manual allocation.
The request above uses RWA sources available in the production catalog. Both
production and sandbox expose ground-jaaa-usdt-vault under usdt. Sandbox
also exposes token-specific JTRSY rows when returned by its live catalog:
ground-jtrsy-usdc-vault belongs under
usdc, and ground-jtrsy-usdt-vault belongs under usdt. Always use the live
environment-specific catalog rather than assuming a row is active.
A first POST with a new requestId returns 200 OK with a minimal creating envelope (no deposit addresses, zero balances). An idempotent replay with the same requestId and an identical payload returns 200 OK with the wallet’s current state. Reusing a requestId with a divergent payload (different label or allocations) returns 409 request_id_conflict — use a fresh requestId for a genuinely new wallet. See Idempotency for the full comparison rules.
Creating response
Polling for activation
PollGET /v2/wallets/{id} every 1-2 seconds until the wallet becomes active or fails. The example below waits for activation; before funding, also check address readiness for the intended network:
Ready response
Oncestatus === "idle", the wallet is active. Fund only a network whose address has appeared in depositAddresses; overall address setup can still be provisioning. See Address readiness. This example shows the addresses already available:
Sandbox ready response
Sandbox returns the same wallet shape with explicit testnet keys for its two supported USDC chains:Key fields
Failed response
If wallet setup fails terminally,GET /v2/wallets/{id} returns:
requestId. Create a new wallet with a fresh requestId and contact support if the failure reason is unclear.