curl --request PATCH \
--url https://sandbox.groundtech.co/v2/wallets/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Operating Treasury"
}
'
{
"id": "b1c2d3e4-0000-4000-8000-000000000001",
"label": "Operating Treasury",
"createdAt": "2025-09-01T00:00:00Z",
"status": "idle",
"failureReason": null,
"depositAddresses": {
"arbitrum": "0xAbC1230000000000000000000000000000000001",
"base": "0xAbC1230000000000000000000000000000000001",
"ethereum": "0xAbC1230000000000000000000000000000000001",
"polygon": "0xAbC1230000000000000000000000000000000001",
"solana": "7vFgKxM3bP4oEFbqkPmA5E2rYJ8HqKz8abc1"
},
"balance": {
"totalUsd": "100.000000",
"withdrawableUsd": "100.000000",
"reservedUsd": "0.000000",
"earnedUsd": "5.000000"
},
"positions": [
{
"id": "syrup-usdc",
"kind": "yield_source",
"label": "Syrup USDC",
"valueUsd": "40.000000",
"pct": 40
},
{
"id": "morpho-gauntlet-usdc",
"kind": "yield_source",
"label": "Morpho Gauntlet USDC Prime",
"valueUsd": "30.000000",
"pct": 30
},
{
"id": "morpho-steakhouse-usdc",
"kind": "yield_source",
"label": "Morpho Steakhouse USDC Prime",
"valueUsd": "30.000000",
"pct": 30
}
]
}{
"error": "label is required",
"code": "validation_error"
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}{
"error": "Wallet not found",
"code": "wallet_not_found"
}{
"error": "Rate limit exceeded",
"code": "rate_limited"
}{
"error": "Internal server error",
"code": "internal_error"
}Wallets
Update a portfolio wallet
Updates wallet metadata. Currently supports changing the wallet label.
PATCH
/
v2
/
wallets
/
{id}
curl --request PATCH \
--url https://sandbox.groundtech.co/v2/wallets/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Operating Treasury"
}
'
{
"id": "b1c2d3e4-0000-4000-8000-000000000001",
"label": "Operating Treasury",
"createdAt": "2025-09-01T00:00:00Z",
"status": "idle",
"failureReason": null,
"depositAddresses": {
"arbitrum": "0xAbC1230000000000000000000000000000000001",
"base": "0xAbC1230000000000000000000000000000000001",
"ethereum": "0xAbC1230000000000000000000000000000000001",
"polygon": "0xAbC1230000000000000000000000000000000001",
"solana": "7vFgKxM3bP4oEFbqkPmA5E2rYJ8HqKz8abc1"
},
"balance": {
"totalUsd": "100.000000",
"withdrawableUsd": "100.000000",
"reservedUsd": "0.000000",
"earnedUsd": "5.000000"
},
"positions": [
{
"id": "syrup-usdc",
"kind": "yield_source",
"label": "Syrup USDC",
"valueUsd": "40.000000",
"pct": 40
},
{
"id": "morpho-gauntlet-usdc",
"kind": "yield_source",
"label": "Morpho Gauntlet USDC Prime",
"valueUsd": "30.000000",
"pct": 30
},
{
"id": "morpho-steakhouse-usdc",
"kind": "yield_source",
"label": "Morpho Steakhouse USDC Prime",
"valueUsd": "30.000000",
"pct": 30
}
]
}{
"error": "label is required",
"code": "validation_error"
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}{
"error": "Wallet not found",
"code": "wallet_not_found"
}{
"error": "Rate limit exceeded",
"code": "rate_limited"
}{
"error": "Internal server error",
"code": "internal_error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Wallet ID
Body
application/json
Human-readable wallet label. Send null or an empty string to clear the label.
Response
Wallet updated
Whether Ground automatically deploys deposits and maintains the wallet's percentage targets.
Percentage targets when automatic rebalancing is enabled. Always null when it is disabled.
Show child attributes
Show child attributes
Compact wallet lifecycle and active-workflow status.
Available options:
creating, idle, withdrawal_active, rebalance_active, withdrawal_and_rebalance_active, failed Deposit addresses keyed by chain. Sandbox wallets use ethereum_sepolia and solana_devnet; production wallets use arbitrum, base, ethereum, polygon, and solana.
Show child attributes
Show child attributes
Example:
{ "arbitrum": "0xAbC1230000000000000000000000000000000001", "base": "0xAbC1230000000000000000000000000000000001", "ethereum": "0xAbC1230000000000000000000000000000000001", "polygon": "0xAbC1230000000000000000000000000000000001", "solana": "7vFgKxM3bP4oEFbqkPmA5E2rYJ8HqKz8abc1" }
Show child attributes
Show child attributes
Show child attributes
Show child attributes