Docs
LiveBlockHelix API
Deploy a policy-guarded vault, then let an operator or agent trade within it. Every action is one API call and is verified on-chain against the vault's policy. The full interactive reference is at api.blockhelix.tech/docs ↗.
Connect
Base URL https://api.blockhelix.tech
Auth Authorization: Bearer <your API key>
(service integrations: X-API-Key + X-User-Id)
Reference https://api.blockhelix.tech/docs (interactive OpenAPI)Get an API key from the dashboard. Pass it as a Bearer token. Service integrations use an X-API-Key plus an X-User-Id header to scope calls to an end user.
How it works
Vaults are non-custodial. Every action an operator or agent takes goes through this API and is re-verified on-chain against a merkle-authorized policy: only whitelisted protocols, assets, and actions execute, and anything else reverts at the contract. Deposits and withdrawals are wallet-signed by the depositor; strategist trades are API-driven and bounded by the policy.
1) Deploy a vault
POST /vaults
Authorization: Bearer <api-key>
Content-Type: application/json
{
"chainId": 8453,
"riskProfileId": "stable-conservative",
"baseAssetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"pauserAddress": "0xYourSafe",
"payoutAddress": "0xYourAddress",
"platformFeeBps": 100,
"performanceFeeBps": 1000,
"vaultName": "My Vault",
"vaultSymbol": "MYV"
}
// 202 { "deploymentId": "dep_...", "status": "queued" }
// poll GET /vaults/:id until status is "complete"Pick a risk profile from GET /vaults/risk-profiles. It sets the merkle policy at launch: exactly which protocols, actions, and assets the vault will ever allow.
2) Discover what it can trade
GET /vaults/:id/capabilities
// 200 - machine-readable, so an agent can plan trades from the API alone
{
"riskProfile": "stable-conservative",
"baseAsset": { "symbol": "USDC", "decimals": 6, "address": "0x8335..." },
"capabilities": [
{ "protocol": "aave-v3", "endpoint": "/trade/aave", "method": "POST",
"actions": ["supply", "withdraw"], "assets": [ { "symbol": "USDC", ... } ] },
{ "protocol": "uniswap-v3", "endpoint": "/trade/swap", "method": "POST",
"actions": ["swap"], "assets": [ USDC, DAI ], "pairs": [ ["USDC", "DAI"] ] }
]
}An agent reads its authorized protocols, actions, assets (with addresses and decimals), and swap pairs, plus the endpoint to call for each. No out-of-band knowledge needed.
3) Trade
POST /trade/aave
{ "deploymentId": "dep_...", "action": "supply",
"asset": "0x8335...", "amount": "5000000" }
POST /trade/swap
{ "deploymentId": "dep_...",
"tokenIn": "0x8335...", "tokenOut": "0x50c5...",
"amountIn": "2000000", "minAmountOut": "1950000000000000000" }
// 202 { "tradeId": "trd_...", "status": "queued", "warnings": [ ... ] }
// 400 if the pair is not in the vault policy, or the vault can't fund it
// poll GET /trade/:id for status + txHash4) Read the vault
GET /vaults/:vault/nav
// 200 - read live from chain
{
"sharePrice": "1000000", "nav": "10000000", "totalShares": "10000000",
"balances": [
{ "symbol": "USDC", "idle": "3000000", "supplied": "5000000", "supplyApy": 0.043 },
{ "symbol": "DAI", "idle": "2000400000000000000", "supplied": "0", "supplyApy": null }
]
}Share price, NAV, and per-token balances (idle in the vault vs supplied to Aave), read live from chain. Amounts are base units; sharePrice and NAV are in the base asset.
Not live yet: risk checks
Trades are bounded by the on-chain policy (only whitelisted actions execute). The independent risk layer (price impact, slippage validation against an oracle, liquidity and position-health checks) is not active yet, and minAmountOut is caller-supplied. Every trade response carries this caveat in a warnings field. Do not use with funds you can't afford to lose.
Endpoints
POST /vaultsDeploy a policy-guarded vaultGET /vaultsList your vaultsGET /vaults/risk-profilesOffered trade-policy profilesGET /vaults/:idDeployment status and component addressesGET /vaults/:id/capabilitiesWhat this vault can trade (agent discovery)GET /vaults/:vault/navLive share price, NAV, and per-token balancesPOST /trade/aaveSupply to / withdraw from Aave v3POST /trade/swapSwap between authorized assets (Uniswap v3)GET /tradeList your tradesGET /trade/:idTrade status, txHash, and failure reasonVault type: Veda
Vaults deploy Veda's BoringVault, an institutional, audited, battle-tested vault architecture. BlockHelix deploys a pinned version, unmodified: Veda-Labs/boring-vault@bdc38405 ↗
Agent-ready today
The REST API is built for agents: GET /vaults/:id/capabilities lets an agent discover its authorized trades, and every action is a single call bounded by the on-chain policy. An MCP server wrapping these tools is on the roadmap. The legacy Solana runtime and its MCP endpoint are frozen.