{"schemaVersion":"1.0","format":"openai-compatible-functions","tools":[{"type":"function","name":"scanarc_resolve_token","description":"Resolve a token name, ticker, $cashtag, or contract address to indexed Arc contracts. If multiple candidates are returned, require the user to choose before quoting.","parameters":{"type":"object","properties":{"query":{"type":"string","minLength":2},"limit":{"type":"integer","minimum":1,"maximum":30,"default":12}},"required":["query"],"additionalProperties":false}},{"type":"function","name":"scanarc_list_markets","description":"Discover indexed Arc token markets. Use tradable=true and includeStale=false before selecting a market for a trade.","parameters":{"type":"object","properties":{"q":{"type":"string","description":"Optional token name, symbol, or contract search"},"page":{"type":"integer","minimum":1,"default":1},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25},"sort":{"type":"string","enum":["volume","liquidity","marketCap","gainers","trades","newest"],"default":"volume"},"tradable":{"type":"boolean","default":true},"includeStale":{"type":"boolean","default":false},"minLiquidity":{"type":"number","minimum":0,"default":0}},"additionalProperties":false}},{"type":"function","name":"scanarc_get_token","description":"Read verified ERC-20 metadata and the indexed ScanArc market record for one Arc token contract.","parameters":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"}},"required":["address"],"additionalProperties":false}},{"type":"function","name":"scanarc_check_risk","description":"Return route, freshness, liquidity, activity, confidence, and machine-readable warning flags before requesting a trade quote.","parameters":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"}},"required":["address"],"additionalProperties":false}},{"type":"function","name":"scanarc_quote_trade","description":"Get a fresh executable buy or sell quote. This never signs or submits a transaction. Always show the user estimated output, minimum output, fee, price impact, slippage, and expiry.","parameters":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"side":{"type":"string","enum":["buy","sell"]},"amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Human-readable amount"},"amountMode":{"type":"string","enum":["usd","token"],"default":"usd"},"slippageBps":{"type":"integer","minimum":10,"maximum":5000,"default":300},"account":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"}},"required":["token","side","amount"],"additionalProperties":false}},{"type":"function","name":"scanarc_prepare_trade","description":"Build and preflight ordered unsigned approval and swap calls for a user-approved trade. Never signs, broadcasts, or receives keys. Require explicit user approval before any wallet submission.","parameters":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"side":{"type":"string","enum":["buy","sell"]},"amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"amountMode":{"type":"string","enum":["usd","token"],"default":"usd"},"slippageBps":{"type":"integer","minimum":10,"maximum":5000,"default":300},"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Arc EVM address"},"approvalMode":{"type":"string","enum":["exact","reusable"],"default":"exact"}},"required":["token","side","amount","recipient"],"additionalProperties":false}},{"type":"function","name":"scanarc_track_transaction","description":"Check whether a submitted Arc transaction is pending, confirmed, reverted, or temporarily unavailable. Poll this before deciding whether any retry is safe; never resubmit merely because status polling failed.","parameters":{"type":"object","properties":{"hash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$","description":"Arc transaction hash"}},"required":["hash"],"additionalProperties":false}}]}