Skip to main content
POST
/
v2
/
wallets
Create a Wallet
curl --request POST \
  --url https://sandbox.groundtech.co/v2/wallets \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "requestId": "a1b2c3d4-0000-4000-8000-000000000001",
  "label": "Corporate Treasury",
  "strategy": {
    "allocations": [
      {
        "yieldSourceId": "syrup-usdc",
        "pct": 50
      },
      {
        "yieldSourceId": "aave-usdc",
        "pct": 50
      }
    ]
  }
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "label": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "depositAddresses": {
    "ethereum": "0xAbC1230000000000000000000000000000000001",
    "solana": "7vFg...abc1"
  },
  "balance": {
    "totalUsd": "<string>",
    "withdrawableUsd": "<string>",
    "earnedUsd": "<string>",
    "pendingDepositsUsd": "<string>"
  },
  "strategy": {
    "allocations": [
      {
        "yieldSourceId": "<string>",
        "pct": 50
      }
    ],
    "status": "active"
  },
  "positions": [
    {
      "yieldSourceId": "<string>",
      "valueUsd": "<string>",
      "apyBps": 123
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
requestId
string<uuid>
required

Client-generated idempotency key (UUID v4).

strategy
object
required
label
string | null

Optional human-readable label for the wallet.

Response

Existing wallet returned for idempotent replay

id
string<uuid>
label
string | null
createdAt
string<date-time>
depositAddresses
object

Deposit addresses keyed by chain name.

Example:
{
  "ethereum": "0xAbC1230000000000000000000000000000000001",
  "solana": "7vFg...abc1"
}
balance
object
strategy
object
positions
object[]