https://api.defindex.io/stabilizer/{vaultAddress} and take an optional ?network=mainnet query parameter. Authentication is the standard Authorization: Bearer <api_key> header used across the API.
Mainnet only, and enabled per account: every route below returns
403 Forbidden until the feature is switched on for your API key. Contact us on Discord to enable it.The response shape
Every write endpoint returns an unsigned transaction for thecaller you pass in the body:
xdr with the caller’s key and submit it, either through your own RPC connection or through the API’s POST /send endpoint, the same flow as any Vault Operation.
Smart wallet callers (C addresses) cannot sign a prebuilt transaction, so for them xdr comes back null and isSmartWallet is true. Build your own transaction around operationXDR instead.
GET /stabilizer/{vaultAddress}/status
Read only snapshot of the vault’s stabilizer state:
config is null when the vault is not registered. campaign is null when the vault has no boost campaign. The two are independent: a vault can be registered without a campaign, and the other way around. Campaign amounts are in stroops of the campaign asset, and lastBoostedAt is unix seconds, 0 meaning never.
POST /stabilizer/{vaultAddress}/register
caller must be the vault’s current Manager and becomes the vault’s stabilizer admin: the address that controls every setting below and the only one that can exit. The returned transaction both registers the vault and hands the Manager role to the stabilizer contract, so one signature covers the whole handoff.
All rates are basis points: 10000 is 100%, 800 is 8%. minFeeBps must be less than or equal to maxFeeBps.
minFeeBps is the floor the fee can never go below, including while a boost campaign is running. It is a commercial decision more than a technical one: see what a boost costs.
POST /stabilizer/{vaultAddress}/target-apy
caller must be the vault’s stabilizer admin.
POST /stabilizer/{vaultAddress}/fee-bounds
caller must be the vault’s stabilizer admin, and minFeeBps must be less than or equal to maxFeeBps.
POST /stabilizer/{vaultAddress}/exit
caller must be the vault’s stabilizer admin.
POST /stabilizer/{vaultAddress}/boost/deposit
amount is stroops of the campaign asset, as a string. Anyone may fund an active campaign, not just the admin. Returns 404 if the vault has no campaign registered and 400 if the campaign is inactive.