{"openapi":"3.1.0","info":{"title":"Nacre API","version":"0.3.1","description":"Read-only privacy router API. Never holds keys. The same tools are served as a remote MCP server at POST /mcp."},"servers":[{"url":"https://nacreshield.xyz"}],"paths":{"/api/glass-check":{"get":{"operationId":"glass_check","summary":"Exposure report for a Solana wallet: first funder, active hours, repeat counterparties, score.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"Solana address"}],"responses":{"200":{"description":"JSON result"},"400":{"description":"{error}"}}}},"/api/pool-depth":{"get":{"operationId":"pool_depth","summary":"Live activity of Solana privacy pools (Umbra, Privacy Cash) and estimated hours to reach a crowd of the given depth.","parameters":[{"name":"depth","in":"query","required":false,"schema":{"type":"number"},"description":"Crowd size, default 128"}],"responses":{"200":{"description":"JSON result"},"400":{"description":"{error}"}}}},"/api/routes/tokens":{"get":{"operationId":"route_tokens","summary":"List chain ids and token symbols reachable through NEAR Intents. Pass chain (e.g. sol, zec, aleo) to list only that chain. Use these exact ids in route_quote / route_create.","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string"},"description":"Optional chain id to filter by"}],"responses":{"200":{"description":"JSON result"},"400":{"description":"{error}"}}}},"/api/routes/quote":{"post":{"operationId":"route_quote","summary":"Live quote for a cross-chain transfer through NEAR Intents (no funds move).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from_chain":{"type":"string","description":"Source chain id, e.g. sol, base, eth, arb, hood"},"from_symbol":{"type":"string","description":"e.g. USDC, SOL, ETH"},"to_chain":{"type":"string","description":"Destination chain id, e.g. zec, aleo, hood, btc, sol"},"to_symbol":{"type":"string","description":"e.g. ZEC, USDCx, USDG, BTC"},"amount":{"type":"string","description":"Decimal amount of the source token"},"recipient":{"type":"string","description":"Recipient address on the destination chain"},"refund_to":{"type":"string","description":"Refund address on the source chain"}},"required":["from_chain","from_symbol","to_chain","to_symbol","amount"]}}}},"responses":{"200":{"description":"JSON result"},"400":{"description":"{error}"}}}},"/api/routes":{"post":{"operationId":"route_create","summary":"Create a cross-chain transfer through NEAR Intents and return the deposit address to fund. Moves nothing by itself. refund_to defaults to the agent wallet when NACRE_KEYPAIR is set and the source is Solana.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from_chain":{"type":"string","description":"Source chain id, e.g. sol, base, eth, arb, hood"},"from_symbol":{"type":"string","description":"e.g. USDC, SOL, ETH"},"to_chain":{"type":"string","description":"Destination chain id, e.g. zec, aleo, hood, btc, sol"},"to_symbol":{"type":"string","description":"e.g. ZEC, USDCx, USDG, BTC"},"amount":{"type":"string","description":"Decimal amount of the source token"},"recipient":{"type":"string","description":"Recipient address on the destination chain"},"refund_to":{"type":"string","description":"Refund address on the source chain"}},"required":["from_chain","from_symbol","to_chain","to_symbol","amount","recipient"]}}}},"responses":{"200":{"description":"JSON result"},"400":{"description":"{error}"}}}},"/api/routes/status":{"get":{"operationId":"route_status","summary":"Status of a NEAR Intents transfer by deposit address.","parameters":[{"name":"deposit_address","in":"query","required":true,"schema":{"type":"string"},"description":"Deposit address from route_create"}],"responses":{"200":{"description":"JSON result"},"400":{"description":"{error}"}}}}}}