Skip to main content
After creating a wallet, you can update its allocation strategy at any time.

Update the strategy

curl -X PATCH "$BASE_URL/v2/wallets/$WALLET_ID/strategy" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "6d74dc1c-f1b5-4f2c-8f33-9f7b9e27cd4b",
    "allocations": [
      { "yieldSourceId": "syrup-usdc", "pct": 40 },
      { "yieldSourceId": "morpho-gauntlet-usdc", "pct": 30 },
      { "yieldSourceId": "morpho-steakhouse-usdc", "pct": 30 }
    ]
  }'
FieldRequiredDescription
requestIdNoUUID v4 idempotency key (defaults to null if omitted)
allocationsYesNew allocation. Percentages must sum to 100.
Each allocation must include yieldSourceId (from the yield source catalog) and pct (integer, 0-100).

Response

The strategy update returns the full wallet object with the updated allocations applied:
{
  "id": "9d1a1c83-3a1c-4c14-9c5a-0c9a57a4a7db",
  "label": "Core Yield Portfolio",
  "createdAt": "2026-02-05T08:15:00Z",
  "depositAddresses": {
    "arbitrum": "0x21246509968c4d24611f414560971AEc2e3A079B",
    "base": "0x21246509968c4d24611f414560971AEc2e3A079B",
    "ethereum": "0x21246509968c4d24611f414560971AEc2e3A079B",
    "polygon": "0x21246509968c4d24611f414560971AEc2e3A079B",
    "solana": "7nYzKxM3bP4oEFbqkPmA5E2rYJ8HqKz8vFg9abc1"
  },
  "balance": {
    "totalUsd": "100000.000000",
    "withdrawableUsd": "100000.000000",
    "availableToInitiateUsd": "100000.000000",
    "pendingWithdrawalUsd": "0.000000",
    "inTransitUsd": "0.000000",
    "earnedUsd": "1250.000000"
  },
  "positions": [
    { "yieldSourceId": "syrup-usdc", "name": "Syrup USDC", "valueUsd": "40000.000000", "pct": 40 },
    { "yieldSourceId": "morpho-gauntlet-usdc", "name": "Morpho Gauntlet USDC Prime", "valueUsd": "30000.000000", "pct": 30 },
    { "yieldSourceId": "morpho-steakhouse-usdc", "name": "Morpho Steakhouse USDC Prime", "valueUsd": "30000.000000", "pct": 30 }
  ]
}
The pct values in the positions array reflect the new allocations immediately. The valueUsd values represent the current position values before the rebalance executes.

What happens during a strategy update

Strategy updates are asynchronous. When you update the strategy:
  1. The new allocations are saved immediately and reflected in each position’s pct in the wallet response.
  2. The system plans a rebalance to move holdings toward the new targets (sells, buys, and bridges as needed).
  3. The rebalance executes over time. For positions with longer unwind windows such as syrup-usdc, the full rebalance can take hours even if synchronous ERC-4626 legs such as the supported Morpho vaults move immediately.
During the rebalance, each position’s valueUsd will gradually converge toward its pct. You can monitor progress by comparing these two fields.

Strategy webhook

Strategy updates emit portfolio_wallet.strategy.status_changed events as the update is applied. See Webhooks for registration and payload details.