Skip to main content
PATCH
/
v2
/
portfolio-wallets
/
{id}
/
strategy
Update portfolio wallet strategy
curl --request PATCH \
  --url https://sandbox.trybraid.xyz/v2/portfolio-wallets/{id}/strategy \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "requestId": "6d74dc1c-f1b5-4f2c-8f33-9f7b9e27cd4b",
  "positions": [
    {
      "positionKey": "tbills",
      "targetWeightBps": 5000,
      "maxProcessingTime": "PT0H"
    },
    {
      "positionKey": "resolvRlp",
      "targetWeightBps": 5000,
      "maxProcessingTime": "PT24H"
    }
  ]
}
'
{ "id": "9d1a1c83-3a1c-4c14-9c5a-0c9a57a4a7db", "requestId": "6d74dc1c-f1b5-4f2c-8f33-9f7b9e27cd4b", "label": "Treasury Portfolio", "status": "active", "createdAt": "2026-02-05T08:15:00.000Z", "updatedAt": "2026-02-05T10:05:00.000Z", "totalBalanceUsd": 76000, "instantWithdrawableUsd": 36000, "pendingAllocationsUsd": 0, "blendedRateBps": 590, "strategyConfig": { "positions": [ { "positionKey": "tbills", "targetWeightBps": 5000, "maxProcessingTime": "PT0H", "asset": "tbills" }, { "positionKey": "resolvRlp", "targetWeightBps": 5000, "maxProcessingTime": "PT24H", "asset": "rlp" } ] }, "liquidityProfile": [ { "maxProcessingTime": "PT0H", "weightBps": 5000 }, { "maxProcessingTime": "PT24H", "weightBps": 5000 } ], "depositAddresses": { "arbitrum": { "address": "0x21246509968c4d24611f414560971AEc2e3A079B", "totalBalanceUsd": 76000, "pendingAllocationsUsd": 0 }, "avalanche": { "address": "0x21246509968c4d24611f414560971AEc2e3A079B", "totalBalanceUsd": 0, "pendingAllocationsUsd": 0 }, "base": { "address": "0x21246509968c4d24611f414560971AEc2e3A079B", "totalBalanceUsd": 0, "pendingAllocationsUsd": 0 }, "bsc": { "address": "0x21246509968c4d24611f414560971AEc2e3A079B", "totalBalanceUsd": 0, "pendingAllocationsUsd": 0 }, "ethereum": { "address": "0x21246509968c4d24611f414560971AEc2e3A079B", "totalBalanceUsd": 0, "pendingAllocationsUsd": 0 }, "optimism": { "address": "0x21246509968c4d24611f414560971AEc2e3A079B", "totalBalanceUsd": 0, "pendingAllocationsUsd": 0 }, "solana": { "address": "7qjT9B7i8wM1tGmW9o6oYtNwqgQF5s9gF8XqNwTgF9n2", "totalBalanceUsd": 0, "pendingAllocationsUsd": 0 } }, "positions": [ { "positionKey": "tbills", "meta": { "asset": "tbills", "maxProcessingTime": "PT0H" }, "targetWeightBps": 5000, "balanceUnits": 38000, "valueUsd": 38000, "weightBps": 5000, "currentApyBps": 330, "driftBps": 0 }, { "positionKey": "resolvRlp", "meta": { "asset": "rlp", "maxProcessingTime": "PT24H" }, "targetWeightBps": 5000, "balanceUnits": 38000, "valueUsd": 38000, "weightBps": 5000, "currentApyBps": 850, "driftBps": 0 } ] }

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string<uuid>
required

Body

application/json
requestId
string<uuid>
required

Unique idempotency key for strategy updates.

positions
object[]
required

Positions must sum to 10000 bps. Only positionKey and targetWeightBps are used; extra fields per position are accepted but ignored.

Response

Strategy update result

id
string<uuid>
required
requestId
string<uuid>
required
status
string
required
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
strategyConfig
object
required
totalBalanceUsd
number<double>
required
instantWithdrawableUsd
number<double>
required
pendingAllocationsUsd
number<double>
required
depositAddresses
object
required

Deposit addresses and balances by chain. Known keys include ethereum, solana, bsc, avalanche, arbitrum, base, optimism. New chains may be added over time.

liquidityProfile
object[]
required
blendedRateBps
number<double>
required
positions
object[]
required
label
string | null