{"openapi":"3.1.0","info":{"title":"Stackit.ai Agent Treasury API","version":"2026-06-25","summary":"MCP, REST, sandbox, and x402 APIs for Stackit.ai agent treasuries.","description":"Stackit.ai is the agent treasury layer for BTC, ETH, stablecoins, borrowing, and protection. Agents can analyze, simulate, prepare, and monitor treasury actions. Real-money execution requires human-approved, scoped permissions or wallet signatures.","termsOfService":"https://www.stackit.ai/terms","contact":{"email":"support@stackit.ai","url":"https://www.stackit.ai/docs/quickstart-agents"}},"servers":[{"url":"https://www.stackit.ai","description":"Current public, sandbox, MCP, and x402 host"}],"tags":[{"name":"Public","description":"No-auth read and simulation endpoints for agent evaluation"},{"name":"Sandbox","description":"Simulated treasury key and action endpoints"},{"name":"Treasury","description":"Treasury registration, state, and wallet-sovereign relay"},{"name":"Agent Access","description":"Human-reviewed live access requests"},{"name":"Discovery","description":"Machine-readable discovery files and MCP endpoint"}],"paths":{"/agents.json":{"get":{"tags":["Discovery"],"summary":"Agent discovery metadata","operationId":"getAgentsJson","responses":{"200":{"description":"Structured agent integration metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDiscovery"},"examples":{"default":{"value":{"name":"Stackit.ai","supported_interfaces":["MCP","REST","x402"],"human_approval_required":true}}}}}}}}},"/fees.json":{"get":{"tags":["Discovery"],"summary":"Machine-readable fee schedule","operationId":"getFeesJson","responses":{"200":{"description":"Current Stackit.ai fee model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeSchedule"},"examples":{"default":{"value":{"object":"stackit_fee_schedule","current_tier":{"tier":"Launch","deposit_fee_pct":2,"buy_fee_pct":2,"cycle_fee_pct":2}}}}}}}}}},"/api/mcp":{"get":{"tags":["Discovery"],"summary":"MCP server discovery","operationId":"getMcpDiscovery","responses":{"200":{"description":"MCP server metadata and tool list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpDiscovery"},"examples":{"default":{"value":{"name":"stackit","endpoint":"https://www.stackit.ai/api/mcp","status":"public_demo_online"}}}}}}}},"post":{"tags":["Discovery"],"summary":"MCP JSON-RPC request","operationId":"callMcp","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"},"examples":{"default":{"value":{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}}}}}},"responses":{"200":{"description":"JSON-RPC result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"},"examples":{"default":{"value":{"jsonrpc":"2.0","id":1,"result":{"tools":[]}}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/public/market-rates":{"get":{"tags":["Public"],"summary":"Get live Aave USDC borrow rates","operationId":"getMarketRates","responses":{"200":{"description":"Live native-USDC variable borrow APYs from Aave V3 on Base, Arbitrum, and Polygon","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketRates"},"examples":{"default":{"value":{"object":"market_rates","environment":"live","protocol":"Aave V3","asset":"USDC","rate_type":"variable_borrow_apy","rates":[{"chain":"base","chain_id":8453,"borrow_apy_pct":4.2}],"note":"Example shape only. GET the endpoint for current rates on all three chains."}}}}}}}}},"/api/v1/public/liquidation-distance":{"get":{"tags":["Public"],"summary":"Calculate liquidation distance for an LTV","operationId":"getLiquidationDistance","parameters":[{"name":"ltv","in":"query","schema":{"type":"number","minimum":1,"maximum":75,"default":40},"required":false}],"responses":{"200":{"description":"Liquidation and protection distance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiquidationDistance"},"examples":{"default":{"value":{"object":"liquidation_distance","ltv":40,"price_drop_to_liquidation_pct":49.04,"stackit_recommended_ceiling_ltv":60}}}}}}}}},"/api/v1/public/portfolio-state":{"get":{"tags":["Public"],"summary":"Get public demo portfolio state","operationId":"getPortfolioState","parameters":[{"name":"address","in":"query","schema":{"type":"string","default":"demo"},"required":false}],"responses":{"200":{"description":"Demo BTC/ETH treasury state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioState"},"examples":{"default":{"value":{"object":"portfolio_state","current_ltv":39.14,"health_score":86}}}}}}}}},"/api/v1/public/policy-state":{"get":{"tags":["Public"],"summary":"Get public demo policy state","operationId":"getPolicyState","parameters":[{"name":"address","in":"query","schema":{"type":"string","default":"demo"},"required":false}],"responses":{"200":{"description":"Policy bands, permissions, gas caps, and fee references","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyState"},"examples":{"default":{"value":{"object":"policy_state","protection_status":"active","fee_schedule_ref":"https://www.stackit.ai/fees.json"}}}}}}}}},"/api/v1/public/gateway-status":{"get":{"tags":["Public"],"summary":"Get gateway status and supported interfaces","operationId":"getGatewayStatus","responses":{"200":{"description":"Agent gateway status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayStatus"},"examples":{"default":{"value":{"object":"gateway_status","status":"online","supported_assets":["BTC","ETH","USDC"]}}}}}}}}},"/api/v1/public/preview":{"post":{"tags":["Public"],"summary":"Preview a treasury action without auth","operationId":"previewPublicAction","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewActionRequest"},"examples":{"default":{"value":{"action":"borrow","amount":5000,"asset":"USDC","current_ltv":39.14}}}}}},"responses":{"200":{"description":"Approved simulated action preview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionPreview"},"examples":{"default":{"value":{"object":"action_preview","approved":true,"stackit_fee_usdc":100,"requires_signature":true}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"403":{"description":"Safety rail rejection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SafetyRailError"},"examples":{"ltv_limit_exceeded":{"value":{"error":"ltv_limit_exceeded","allowed":false,"approved":false,"message":"Borrow would push LTV to 67.3%, exceeding the 60% recommended ceiling.","safe_amount":4200,"current_ltv":42.5,"resulting_ltv":67.3,"request_id":"req_demo_preview"}}}}}}}}},"/api/v1/sandbox/keys":{"post":{"tags":["Sandbox"],"summary":"Create a sandbox API key","operationId":"createSandboxKey","responses":{"201":{"description":"Sandbox key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxKey"},"examples":{"default":{"value":{"sandbox":true,"key":"sk_test_...","expires_at":"2026-07-25T00:00:00.000Z"}}}}}},"429":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"503":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/treasuries":{"get":{"tags":["Treasury"],"summary":"Describe treasury creation schema","operationId":"describeTreasuryCreation","responses":{"200":{"description":"Treasury creation schema and presets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreasuryCreateSchema"},"examples":{"default":{"value":{"object":"treasury_create_schema","presets":["conservative","balanced","aggressive"]}}}}}}}},"post":{"tags":["Treasury"],"summary":"Create a simulated treasury bound to a wallet","operationId":"createTreasury","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTreasuryRequest"},"examples":{"default":{"value":{"wallet_address":"0x1111111111111111111111111111111111111111","chain":"base","preset":"balanced","execution_mode":"wallet"}}}}}},"responses":{"200":{"description":"Treasury registration with sandbox API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Treasury"},"examples":{"default":{"value":{"sandbox":true,"object":"treasury","treasury_id":"trs_demo","execution_mode":"wallet"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/treasuries/{id}":{"get":{"tags":["Treasury"],"summary":"Get treasury configuration and simulated state","operationId":"getTreasuryById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^trs_"}}],"responses":{"200":{"description":"Treasury configuration and state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Treasury"},"examples":{"default":{"value":{"sandbox":true,"object":"treasury","treasury_id":"trs_demo","state":{"usdc_balance":10000}}}}}}},"404":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/deposits":{"post":{"tags":["Sandbox"],"summary":"Deposit simulated USDC","operationId":"createDeposit","security":[{"bearerAuth":[]},{"x402":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsdcAmountRequest"},"examples":{"default":{"value":{"amount_usdc":10000}}}}}},"responses":{"200":{"description":"Deposit receipt or unsigned transaction envelope","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ActionReceipt"},{"$ref":"#/components/schemas/UnsignedTransaction"}]},"examples":{"default":{"value":{"sandbox":true,"object":"action_receipt","action":"deposit","amount_usdc":10000}}}}}},"202":{"description":"Unsigned transaction envelope for wallet-mode treasury","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsignedTransaction"},"examples":{"default":{"value":{"sandbox":true,"object":"unsigned_transaction","action":"deposit","status":"awaiting_signature"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"409":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"429":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/convert":{"post":{"tags":["Sandbox"],"summary":"Convert simulated USDC into BTC/ETH exposure","operationId":"convertUsdc","security":[{"bearerAuth":[]},{"x402":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsdcAmountRequest"},"examples":{"default":{"value":{"amount_usdc":5000}}}}}},"responses":{"200":{"description":"Conversion receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionReceipt"},"examples":{"default":{"value":{"sandbox":true,"action":"convert","amount_usdc":5000}}}}}},"202":{"description":"Unsigned transaction envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsignedTransaction"},"examples":{"default":{"value":{"sandbox":true,"action":"convert","status":"awaiting_signature"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"409":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/borrow":{"post":{"tags":["Sandbox"],"summary":"Borrow simulated USDC against collateral","operationId":"borrowUsdc","security":[{"bearerAuth":[]},{"x402":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsdcAmountRequest"},"examples":{"default":{"value":{"amount_usdc":4000}}}}}},"responses":{"200":{"description":"Borrow receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionReceipt"},"examples":{"default":{"value":{"sandbox":true,"action":"borrow","amount_usdc":4000}}}}}},"202":{"description":"Unsigned transaction envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsignedTransaction"},"examples":{"default":{"value":{"sandbox":true,"action":"borrow","status":"awaiting_signature"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"403":{"description":"Safety rail rejection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SafetyRailError"},"examples":{"ltv_limit_exceeded":{"value":{"error":"ltv_limit_exceeded","allowed":false,"approved":false,"message":"Borrow would push LTV to 67.3%, exceeding the 60% recommended ceiling.","safe_amount":4200,"current_ltv":42.5,"resulting_ltv":67.3,"request_id":"req_demo_preview"}}}}}},"409":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/repay":{"post":{"tags":["Sandbox"],"summary":"Repay simulated USDC debt","operationId":"repayUsdc","security":[{"bearerAuth":[]},{"x402":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsdcAmountRequest"},"examples":{"default":{"value":{"amount_usdc":2000}}}}}},"responses":{"200":{"description":"Repay receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionReceipt"},"examples":{"default":{"value":{"sandbox":true,"action":"repay","amount_usdc":2000}}}}}},"202":{"description":"Unsigned transaction envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsignedTransaction"},"examples":{"default":{"value":{"sandbox":true,"action":"repay","status":"awaiting_signature"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"409":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/estimate":{"post":{"tags":["Sandbox"],"summary":"Estimate fees and LTV before an action","operationId":"estimateAction","security":[{"bearerAuth":[]},{"x402":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateRequest"},"examples":{"default":{"value":{"action":"borrow","amount_usdc":5000}}}}}},"responses":{"200":{"description":"Action estimate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionPreview"},"examples":{"default":{"value":{"approved":true,"stackit_fee_usdc":100,"fee_basis":"2% of the amount borrowed, per execution"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"403":{"description":"Safety rail rejection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SafetyRailError"},"examples":{"ltv_limit_exceeded":{"value":{"error":"ltv_limit_exceeded","allowed":false,"approved":false,"message":"Borrow would push LTV to 67.3%, exceeding the 60% recommended ceiling.","safe_amount":4200,"current_ltv":42.5,"resulting_ltv":67.3,"request_id":"req_demo_preview"}}}}}}}}},"/api/v1/health":{"get":{"tags":["Sandbox"],"summary":"Get sandbox treasury health","operationId":"getHealth","security":[{"bearerAuth":[]},{"x402":[]}],"responses":{"200":{"description":"Current LTV, zone, and health score","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthState"},"examples":{"default":{"value":{"sandbox":true,"health_score":87,"ltv":36.5}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/treasury":{"get":{"tags":["Sandbox"],"summary":"Get sandbox treasury state","operationId":"getTreasuryState","security":[{"bearerAuth":[]},{"x402":[]}],"responses":{"200":{"description":"Treasury balances, debt, and health","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreasuryState"},"examples":{"default":{"value":{"sandbox":true,"usdc_balance":10000,"debt_usdc":0,"ltv":0}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/policy-state":{"get":{"tags":["Sandbox"],"summary":"Get authenticated sandbox policy state","operationId":"getAuthenticatedPolicyState","security":[{"bearerAuth":[]},{"x402":[]}],"responses":{"200":{"description":"Policy state for the authenticated treasury","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyState"},"examples":{"default":{"value":{"object":"policy_state","protection_status":"active"}}}}}},"401":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/relay":{"post":{"tags":["Treasury"],"summary":"Relay a wallet-signed transaction envelope","operationId":"relaySignedTransaction","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayRequest"},"examples":{"default":{"value":{"tx_id":"tx_demo","signed_transaction":"0x1111111111111111111111111111111111111111"}}}}}},"responses":{"200":{"description":"Relay receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayReceipt"},"examples":{"default":{"value":{"sandbox":true,"object":"relay_receipt","status":"confirmed"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"404":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"410":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/agents/apply":{"get":{"tags":["Agent Access"],"summary":"Describe live-access request schema","operationId":"describeAgentAccessRequest","responses":{"200":{"description":"Input schema for live-access requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentAccessSchema"},"examples":{"default":{"value":{"object":"agent_access_schema","required":["operator_name","operator_email","use_case"]}}}}}}}},"post":{"tags":["Agent Access"],"summary":"Request production access for an agent","operationId":"requestAgentAccess","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentAccessRequestInput"},"examples":{"default":{"value":{"operator_name":"Ada Operator","operator_email":"ada@example.com","use_case":"Weekly USDC accumulation into BTC/ETH and conservative borrowing for compute costs","agent_name":"treasury-bot"}}}}}},"responses":{"200":{"description":"Human-reviewed access request accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentAccessRequest"},"examples":{"default":{"value":{"object":"agent_access_request","id":"agr_demo","status":"received"}}}}}},"400":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}},"429":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}},"/api/v1/agents/apply/{id}":{"get":{"tags":["Agent Access"],"summary":"Get live-access request status","operationId":"getAgentAccessStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^agr_"}}],"responses":{"200":{"description":"Access request status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentAccessRequest"},"examples":{"default":{"value":{"object":"agent_access_request","id":"agr_demo","status":"in_review"}}}}}},"404":{"description":"Typed error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"invalid_request":{"value":{"error":"invalid_request","message":"The request was missing a required field.","request_id":"req_demo_123"}}}}}}}}}},"components":{"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":120},"description":"Unique request key for state-changing actions. Used for replay protection."}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Stackit sandbox or live API key"},"x402":{"type":"apiKey","in":"header","name":"X-Payment","description":"Base64-encoded x402 payment proof"}},"schemas":{"ErrorResponse":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"docs":{"type":"string","format":"uri"}}},"SafetyRailError":{"allOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"type":"object","required":["allowed","approved","safe_amount","current_ltv","resulting_ltv"],"properties":{"allowed":{"type":"boolean","const":false},"approved":{"type":"boolean","const":false},"safe_amount":{"type":"number"},"current_ltv":{"type":"number"},"resulting_ltv":{"type":"number"},"fee_usd":{"type":"number"},"fee_basis":{"type":"string"}}}]},"AgentDiscovery":{"type":"object","required":["name","description","categories","mcp_url","openapi_url","fees_url","sandbox_url","human_approval_required","supported_assets","supported_interfaces"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"mcp_url":{"type":"string","format":"uri"},"openapi_url":{"type":"string","format":"uri"},"fees_url":{"type":"string","format":"uri"},"sandbox_url":{"type":"string","format":"uri"},"trust_url":{"type":"string","format":"uri"},"security_url":{"type":"string","format":"uri"},"status_url":{"type":"string","format":"uri"},"human_approval_required":{"type":"boolean"},"supported_assets":{"type":"array","items":{"type":"string"}},"supported_interfaces":{"type":"array","items":{"type":"string","enum":["MCP","REST","x402"]}}}},"FeeSchedule":{"type":"object","additionalProperties":true},"JsonRpcRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"method":{"type":"string"},"params":{"type":"object","additionalProperties":true}}},"JsonRpcResponse":{"type":"object","additionalProperties":true},"McpDiscovery":{"type":"object","additionalProperties":true},"MarketRates":{"type":"object","additionalProperties":true},"LiquidationDistance":{"type":"object","additionalProperties":true},"PortfolioState":{"type":"object","additionalProperties":true},"PolicyState":{"type":"object","additionalProperties":true},"GatewayStatus":{"type":"object","additionalProperties":true},"PreviewActionRequest":{"type":"object","required":["action","amount"],"properties":{"action":{"type":"string","enum":["borrow","deposit","convert","repay","sell","withdraw","exit","protection","auto_repay","auto_deleverage"]},"amount":{"type":"number","minimum":0},"amount_usdc":{"type":"number","minimum":0},"asset":{"type":"string","enum":["USDC","BTC","ETH"]},"address":{"type":"string"},"current_ltv":{"type":"number","minimum":0,"maximum":75},"initiator":{"type":"string"}}},"ActionPreview":{"type":"object","required":["approved","action","amount_usdc","ltv_before","ltv_after","stackit_fee_usdc"],"properties":{"object":{"type":"string"},"environment":{"type":"string"},"approved":{"type":"boolean"},"action":{"type":"string"},"amount_usdc":{"type":"number"},"stackit_fee_usdc":{"type":"number"},"fee_basis":{"type":"string"},"ltv_before":{"type":"number"},"ltv_after":{"type":"number"},"health_score_after":{"type":"number"},"requires_signature":{"type":"boolean"},"unsigned_transaction":{"type":["string","null"]}}},"SandboxKey":{"type":"object","required":["sandbox","key","expires_at"],"properties":{"sandbox":{"type":"boolean","const":true},"key":{"type":"string","pattern":"^sk_test_"},"expires_at":{"type":"string","format":"date-time"},"docs":{"type":"string","format":"uri"}}},"TreasuryCreateSchema":{"type":"object","additionalProperties":true},"CreateTreasuryRequest":{"type":"object","required":["wallet_address"],"properties":{"wallet_address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"chain":{"type":"string","enum":["arbitrum","base"],"default":"base"},"preset":{"type":"string","enum":["conservative","balanced","aggressive"],"default":"balanced"},"execution_mode":{"type":"string","enum":["wallet","managed"],"default":"wallet"}}},"Treasury":{"type":"object","additionalProperties":true},"UsdcAmountRequest":{"type":"object","required":["amount_usdc"],"properties":{"amount_usdc":{"type":"number","exclusiveMinimum":0,"maximum":100000},"amount":{"type":"number","exclusiveMinimum":0,"maximum":100000}}},"EstimateRequest":{"type":"object","required":["action","amount_usdc"],"properties":{"action":{"type":"string","enum":["deposit","convert","borrow","repay"]},"amount_usdc":{"type":"number","exclusiveMinimum":0},"amount":{"type":"number","exclusiveMinimum":0},"target":{"type":"string","enum":["btc","eth"]}}},"ActionReceipt":{"type":"object","required":["sandbox","action","amount_usdc"],"properties":{"sandbox":{"type":"boolean"},"object":{"type":"string"},"action":{"type":"string"},"amount_usdc":{"type":"number"},"fee_usdc":{"type":"number"},"ltv_before":{"type":"number"},"ltv_after":{"type":"number"},"status":{"type":"string"}}},"UnsignedTransaction":{"type":"object","required":["sandbox","object","tx_id","status","unsigned_transaction"],"properties":{"sandbox":{"type":"boolean","const":true},"object":{"type":"string","const":"unsigned_transaction"},"tx_id":{"type":"string","pattern":"^tx_"},"action":{"type":"string"},"amount_usdc":{"type":"number"},"status":{"type":"string","enum":["awaiting_signature"]},"unsigned_transaction":{"type":"object","required":["chain","to","data","value"],"properties":{"chain":{"type":"string"},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"}}},"expires_at":{"type":"string","format":"date-time"}}},"HealthState":{"type":"object","additionalProperties":true},"TreasuryState":{"type":"object","additionalProperties":true},"RelayRequest":{"type":"object","required":["tx_id","signed_transaction"],"properties":{"tx_id":{"type":"string","pattern":"^tx_"},"signed_transaction":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"}}},"RelayReceipt":{"type":"object","additionalProperties":true},"AgentAccessSchema":{"type":"object","additionalProperties":true},"AgentAccessRequestInput":{"type":"object","required":["operator_name","operator_email","use_case"],"properties":{"operator_name":{"type":"string","minLength":2},"operator_email":{"type":"string","format":"email"},"use_case":{"type":"string","minLength":20},"agent_name":{"type":"string"},"agent_framework":{"type":"string"},"company":{"type":"string"},"wallet_address":{"type":"string"},"chain":{"type":"string","enum":["arbitrum","base"]},"expected_monthly_volume_usdc":{"type":"number"}}},"AgentAccessRequest":{"type":"object","required":["object","id","status"],"properties":{"object":{"type":"string","const":"agent_access_request"},"id":{"type":"string","pattern":"^agr_"},"status":{"type":"string","enum":["received","in_review","closed"]},"status_url":{"type":"string","format":"uri"},"submitted_at":{"type":"string","format":"date-time"},"docs":{"type":"string","format":"uri"}}}}}}