Skip to main content
Use PATCH /v2/portfolio-wallets/{id}/strategy to update an existing portfolio wallet’s target allocation (the positions[] weights).

What you need

  • A portfolio wallet id (GET /v2/portfolio-wallets or GET /v2/portfolio-wallets/{id})
  • New target positions[] (weights must sum to 10,000 bps)

Tutorial: update an existing wallet’s allocation

1

1) Pick the new target positions

If you want help generating a good allocation, use the quote flow:
  • GET /v2/portfolio-wallets/yield-sources (discover available position keys)
  • POST /v2/portfolio-wallets/quote (generate suggested allocations)
The quote response returns strategyConfig.positions[]. When updating a wallet, you pass those positions as positions[] in the PATCH request.
2

2) Send the strategy update request

Example:
cURL
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": "tbills", "targetWeightBps": 5000 },
      { "positionKey": "resolvRlp", "targetWeightBps": 5000 }
    ]
  }'
In the response, you’ll receive { "status": "pending_approval", "turnkeyActivityId": "..." }.
3

3) Approve the update

If you receive status: pending_approval, complete the approval flow using the returned turnkeyActivityId, then Braid will continue processing automatically. Check out our Turnkey Approvals doc for more information on how to sign a turnkeyActivityId.
4

4) Monitor progress

Strategy updates emit portfolio_wallet.strategy.status_changed webhooks as the update is applied.You can also poll GET /v2/portfolio-wallets/{id} to see the wallet’s current strategyConfig and positions.

Strategy update statuses

strategy.status (from portfolio_wallet.strategy.status_changed) can be:
  • pending_approval: The update was requested and is awaiting approval (for example, through Turnkey). The update response includes turnkeyActivityId.
  • processing: Rebalancing is in progress.
  • completed: The update has been applied.
  • failed: The update did not complete successfully (the payload may include a failureReason).
Early view: Strategy updates are an early view of our portfolio strategy update functionality. More detailed documentation on the strategy update / rebalancing lifecycle will be shared shortly.