Skip to main content
Yield sources are the underlying yield opportunities your portfolio wallet allocates into. A strategy is a weighted allocation across one or more yield sources.

Available yield sources

curl "$BASE_URL/v2/portfolio-wallets/yield-sources" \
  -H "Authorization: Bearer $BRAID_API_TOKEN"
{
  "yieldSources": [
    {
      "positionKey": "usdz",
      "displayName": "Anzen USDz",
      "description": "Fixed-rate yield backed by US T-bills via Anzen Finance",
      "asset": "usdz",
      "yieldSourceType": "stablecoin_yield",
      "chain": "arbitrum",
      "maxProcessingTime": "PT0H",
      "currentRateBps": 330,
      "rateUpdatedAt": "2026-02-05T10:00:00.000Z"
    },
    {
      "positionKey": "syrupUsdc",
      "displayName": "Syrup USDC",
      "description": "Variable-rate USDC lending through Maple Finance's Syrup protocol",
      "asset": "syrupUSDC",
      "yieldSourceType": "overcollateralized_lending",
      "chain": "ethereum",
      "maxProcessingTime": "PT0H",
      "currentRateBps": 510,
      "rateUpdatedAt": "2026-02-05T10:00:00.000Z"
    },
    {
      "positionKey": "rlp",
      "displayName": "Resolv LP",
      "description": "Delta-neutral strategy exposure via Resolv protocol",
      "asset": "rlp",
      "yieldSourceType": "delta_neutral_strategy",
      "chain": "ethereum",
      "maxProcessingTime": "PT24H",
      "currentRateBps": 850,
      "rateUpdatedAt": "2026-02-05T10:00:00.000Z"
    },
    {
      "positionKey": "ustb",
      "displayName": "Superstate USTB",
      "description": "Tokenized US Treasury Bills via Superstate",
      "asset": "ustb",
      "yieldSourceType": "stablecoin_yield",
      "chain": "ethereum",
      "maxProcessingTime": "P2D",
      "currentRateBps": 430,
      "rateUpdatedAt": "2026-02-05T10:00:00.000Z"
    }
  ]
}
Position keyTypeChainLiquidityDescription
usdzstablecoin_yieldArbitrumInstantUSDZ — M0 wM extension token collateralized by T-bills
syrupUsdcovercollateralized_lendingEthereumInstantMaple Syrup overcollateralized lending
rlpdelta_neutral_strategyEthereumUp to 24hResolv RLP delta-neutral strategy
ustbstablecoin_yieldEthereumUp to 48hSuperstate USTB tokenized US Treasury Bills

Yield source fields

FieldDescription
positionKeyUnique identifier used across all API responses
displayNameHuman-readable name for UI display
descriptionBrief description of the yield strategy
assetUnderlying asset token
yieldSourceTypeCategory: stablecoin_yield, overcollateralized_lending, delta_neutral_strategy
chainChain where the yield source operates
maxProcessingTimeISO 8601 duration for worst-case unwind time (e.g. PT0H = instant, PT24H = up to 24 hours)
currentRateBpsCurrent APR in basis points (100 bps = 1%)
rateUpdatedAtWhen the rate was last refreshed

Rate semantics

currentRateBps is a best-effort 30-day APR (simple annualization) derived from each source’s oracle NAV/share history. usdz is currently treated as a static rate (330 bps / 3.3%) until a dedicated rate oracle is introduced. For details on NAV freshness and valuation timing, see Balances and Yield.

Quote a strategy

Generate a suggested allocation given your constraints:
curl -X POST "$BASE_URL/v2/portfolio-wallets/quote" \
  -H "Authorization: Bearer $BRAID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "c3353fff-87cf-4c7c-b68c-2700139dd4e6",
    "minApyTargetBps": 500,
    "liquidityConstraints": [
      { "maxProcessingTime": "PT1H", "minWeightBps": 5000 }
    ],
    "withdrawalDestination": {
      "destinationToken": "usdc",
      "destinationChain": "ethereum"
    }
  }'
FieldRequiredDescription
requestIdYesUUID v4 idempotency key
minApyTargetBpsNoMinimum blended APY in basis points
liquidityConstraintsNoArray of { maxProcessingTime, minWeightBps }
yieldSourceTypesNoFilter by yield source type
exclusionsNoExclude specific yield sources by positionKey (e.g. ["rlp"])
withdrawalDestinationNoAttach end-to-end withdrawal time estimates to results

Response

The response returns one or more Pareto-optimal strategy options:
[
  {
    "strategyConfig": {
      "positions": [
        {
          "positionKey": "usdz",
          "targetWeightBps": 5000,
          "maxProcessingTime": "PT0H",
          "currentApy": 330
        },
        {
          "positionKey": "rlp",
          "targetWeightBps": 5000,
          "maxProcessingTime": "PT24H",
          "currentApy": 850
        }
      ]
    },
    "blendedRateBps": 590,
    "constraintsSatisfied": true,
    "withdrawalTimeEstimates": { ... }
  }
]
  • strategyConfig.positions is ordered from lowest to highest currentApy.
  • Use the returned positions as the positions input to POST /v2/portfolio-wallets.
  • When constraintsSatisfied is false, the quote is the closest feasible option — review the tradeoff before using it.
  • If withdrawalDestination is provided, the response includes withdrawalTimeEstimates with per-position end-to-end estimates (see Estimate withdrawal times).

Next steps