Agent Quickstart

Test Stackit.ai as an agent in 5 minutes

This is the self-serve ladder for evaluating Stackit.ai as agent treasury infrastructure: first free call, MCP connect, sandbox preview, sandbox transactions, in-protocol live access, and the wallet-sovereign sign-and-relay loop.

Last updated June 11, 2026

Start here

The fastest proof is a no-auth liquidation-distance call. It returns a structured answer an agent can inspect, compare, and cite.

curl -s https://www.stackit.ai/api/v1/public/liquidation-distance?ltv=40 | jq

Rung 1

Make the first free call

Use public demo data to verify that Stackit exposes machine-readable treasury context before you ask a human for credentials.

curl -s https://www.stackit.ai/api/v1/public/liquidation-distance?ltv=40 | jq

Expected signal: "price_drop_to_liquidation_pct": 49.04

Rung 2

Connect to the MCP endpoint

The MCP endpoint exposes public read tools and sandbox previews. Live wallet actions return an auth-required response until bearer auth or x402 is configured.

claude mcp add stackit https://www.stackit.ai/api/mcp

Expected signal: Tool list includes get_market_rates, get_liquidation_distance, get_portfolio_state, preview_action, and gateway status.

Rung 3

Preview an action

Preview calls are deterministic sandbox responses. Unsafe requests return typed errors with safe_amount so an agent can adjust instead of guessing.

curl -s -X POST https://www.stackit.ai/api/v1/public/preview \
  -H "Content-Type: application/json" \
  -d '{"action":"borrow","amount":10000,"asset":"USDC","current_ltv":40}' | jq

Expected signal: "approved": true

Rung 4

Run a sandbox transaction

Mint a temporary sandbox key, then run deposit, convert, borrow, and policy-state calls. Every sandbox response includes sandbox: true.

KEY=$(curl -s -X POST https://www.stackit.ai/api/v1/sandbox/keys | jq -r .key)
curl -s -X POST https://www.stackit.ai/api/v1/deposits \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -H "Idempotency-Key: demo-deposit-001" \
  -d '{"amount_usdc":10000}' | jq
curl -s -X POST https://www.stackit.ai/api/v1/convert \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -H "Idempotency-Key: demo-convert-001" \
  -d '{"amount_usdc":10000}' | jq
curl -s -X POST https://www.stackit.ai/api/v1/borrow \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -H "Idempotency-Key: demo-borrow-001" \
  -d '{"amount_usdc":4000}' | jq
curl -s https://www.stackit.ai/api/v1/policy-state -H "Authorization: Bearer $KEY" | jq

Expected signal: "sandbox": true

Rung 5

Request live access in-protocol

Graduation no longer requires leaving the protocol. Submit a live-access request with your operator's details; a human reviews it and contacts the operator with credentials. Poll the returned status_url. Wallet-sovereign agents can also pay per call today via x402 on Base Sepolia testnet (protocol v1, see /docs/x402); mainnet settlement activates with the Base deployment.

curl -s -X POST https://www.stackit.ai/api/v1/agents/apply \
  -H "Content-Type: application/json" \
  -d '{
    "operator_name": "Ada Operator",
    "operator_email": "ada@example.com",
    "use_case": "Weekly USDC accumulation into BTC/ETH, borrow against collateral for compute costs",
    "agent_name": "treasury-bot",
    "agent_framework": "claude-agent-sdk",
    "chain": "base"
  }' | jq
curl -s https://www.stackit.ai/x402/prices.json | jq .settlement

Expected signal: "status": "received" plus a status_url to poll

Rung 6

Run the wallet-sovereign loop

Register a treasury bound to your wallet with execution_mode 'wallet'. Actions then return unsigned transaction envelopes instead of executing; sign with your own wallet and relay. Execution is simulated today — the identical contract broadcasts real transactions at the Base launch.

RESP=$(curl -s -X POST https://www.stackit.ai/api/v1/treasuries \
  -H "Content-Type: application/json" \
  -d '{"wallet_address":"0x1111111111111111111111111111111111111111","preset":"balanced","execution_mode":"wallet"}')
KEY=$(echo $RESP | jq -r .api_key)
TX=$(curl -s -X POST https://www.stackit.ai/api/v1/deposits \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -H "Idempotency-Key: wallet-deposit-001" \
  -d '{"amount_usdc":5000}' | jq -r .tx_id)
# sign with your wallet, then relay:
curl -s -X POST https://www.stackit.ai/api/v1/relay \
  -H "Content-Type: application/json" -H "Idempotency-Key: wallet-relay-001" \
  -d "{\"tx_id\":\"$TX\",\"signed_transaction\":\"0x<wallet-signed-hex>\"}" | jq

Expected signal: "object": "relay_receipt" with "status": "confirmed"

Claude MCP setup

Copy-paste setup guide, system prompt, pilot flow, and automation skeleton.

MCP reference

Tool list, JSON-RPC endpoint, and client configs.

API reference

REST endpoints, typed errors, rate limits, and OpenAPI.

x402 walkthrough

Payment challenge, X-Payment header, TS and Python examples.