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/portfolio-wallets/$WALLET_ID/strategy" \
  -H "Authorization: Bearer $BRAID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "6d74dc1c-f1b5-4f2c-8f33-9f7b9e27cd4b",
    "positions": [
      { "positionKey": "usdz", "targetWeightBps": 5000, "maxProcessingTime": "PT0H" },
      { "positionKey": "rlp", "targetWeightBps": 5000, "maxProcessingTime": "PT24H" }
    ]
  }'
FieldRequiredDescription
requestIdYesUUID v4 idempotency key
positionsYesNew allocation. Weights must sum to 10,000 bps.
The response returns the full wallet object with the updated strategy:
{
  "id": "9d1a1c83-3a1c-4c14-9c5a-0c9a57a4a7db",
  "label": "Treasury Portfolio",
  "createdAt": "2026-02-05T08:15:00.000Z",
  "depositAddresses": { ... },
  "balance": {
    "totalUsd": "82500.00",
    "withdrawableUsd": "82500.00",
    "earnedUsd": "1250.00"
  },
  "strategy": {
    "allocations": [
      { "positionKey": "usdz", "pct": 50 },
      { "positionKey": "rlp", "pct": 50 }
    ],
    "status": "rebalancing"
  },
  "positions": [
    { "positionKey": "usdz", "name": "Anzen USDz", "valueUsd": "52500.00" },
    { "positionKey": "rlp", "name": "Resolv LP", "valueUsd": "30000.00" }
  ]
}
Note that strategy.status transitions to rebalancing immediately. Positions continue to reflect current holdings until the rebalance completes.

What happens during a strategy update

Strategy updates are asynchronous and may require Turnkey approval:
  1. The new target weights are saved immediately and reflected in the wallet response.
  2. A Turnkey approval may be required before rebalancing begins.
  3. The system plans a rebalance (sells → buys → bridges as needed).
  4. The rebalance executes over time. For positions with longer unwind windows (e.g. rlp at PT24H), the full rebalance can take hours.

Strategy statuses

There are two distinct status concepts:

Wallet-level strategy.status

The wallet response includes strategy.status reflecting current holdings vs. targets:
StatusMeaning
alignedHoldings match target weights (within tolerance)
rebalancingActively rebalancing to reach targets

Webhook strategy update status

The portfolio_wallet.strategy.status_changed webhook tracks the lifecycle of a specific strategy update operation:
StatusMeaning
pending_approvalWaiting for Turnkey approval
processingRebalance in progress
completedStrategy update fully applied
failedStrategy update failed
These are different: strategy.status is a point-in-time snapshot of the wallet, while the webhook status tracks the update operation itself.

Strategy webhook

Strategy updates emit portfolio_wallet.strategy.status_changed events. See Webhooks.

Next steps