Creating a wallet is asynchronous.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.
POST /v2/wallets returns immediately with status: "creating". Deposit addresses and on-chain state are not populated synchronously — poll GET /v2/wallets/{id} until status becomes "idle".
Create a portfolio wallet
| Field | Required | Description |
|---|---|---|
requestId | Yes | UUID v4 idempotency key |
label | No | Human-readable wallet name |
strategy | Yes | Object containing allocations array |
strategy.allocations | Yes | Array of { yieldSourceId, pct }. Percentages must sum to 100. |
200 OK. A first POST with a new requestId returns a minimal creating envelope (no deposit addresses, zero balances). An idempotent replay with the same requestId returns the wallet’s current state.
Creating response
Polling for activation
PollGET /v2/wallets/{id} every 1-2 seconds until status !== "creating":
Ready response
Oncestatus === "idle", the response is ready for deposits:
Key fields
| Field | Description |
|---|---|
status | "creating" during provisioning, "idle" when ready, "withdrawal_active" / "rebalance_active" / "withdrawal_and_rebalance_active" while work is running, "failed" if setup terminated |
failureReason | Populated only when status === "failed" — short human-readable reason |
depositAddresses | Per-chain addresses to fund the wallet. Empty until status === "idle". |
balance.totalUsd | Total economically owned wallet value |
balance.withdrawableUsd | Amount that can be withdrawn now |
balance.reservedUsd | Customer-owned value currently reserved by active withdrawals or rebalances |
balance.earnedUsd | Lifetime yield earned (monotonic) |
positions | Current cash, bridge, and yield-source holdings with USD values. Yield-source positions include pct. |
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.
Rebalancing
Portfolio wallets are best-effort targets. Over time, or after deposits and withdrawals, holdings drift from target allocations. The system rebalances to bring positions back toward the strategy targets. Deposits first appear as cash and are then deployed into the configured yield sources.Sandbox notes
In sandbox, deposit address keys include the network suffix (e.g.ethereum_sepolia instead of ethereum). See Supported Chains for details. The yieldSourceId values and request shapes are identical to production.