POST /v2/wallets returns the wallet immediately. Its status is creating while initial setup is in progress, or idle when a prepared wallet is available. 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. EVM, Solana, TRON, and Stellar address setup proceeds automatically. See Stellar integration for Stellar funding and approval behavior.
Create a portfolio wallet
Place each yield source under its catalog
allocationGroup from GET /v2/wallets/assets. 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. A wallet still being created has no deposit addresses and zero balances; its configured targets can already appear as zero-value positions. A prepared wallet can return immediately with its ready addresses. 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. Other networks may still be preparing their addresses. See Address readiness. This example shows the addresses already available:
Sandbox ready response
This sandbox example uses a cash strategy and shows all four automatically prepared deposit networks: Ethereum Sepolia, Solana Devnet, TRON Shasta, and Stellar Testnet. During provisioning, only ready network addresses appear: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.