Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,524Letters: 13Defects: 1,322counted 1 min ago
teppi

Server definition

Hash
sha256:7bf3b5714105a4df10b3654069cf1e8f72ce1381dba4b553ed993f3da2881957
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": "ADEXTO sells positions in bonding-curve markets across chains, paid for with USDC on Base over x402. Call list_markets to see what exists, quote_buy to price one without paying, then buy_token with a signed payment. You never need gas on the destination chain and never need to bridge. Every tool except buy_token is free, and buy_token's first response is a 402 challenge, which is expected rather than a failure. A ticker can trade on more than one chain: pass chainId from list_markets to pick one. Every market can be staked, in its own stake contract or its chain's stake hub, and a stake opens its agent: check_stake, access_message, then ask_agent. To launch your own market with your own key: prepare_launch (once for the attestation message, once with its signature), send the unsigned transaction it returns, then register_launch. prepare_stake and prepare_claim also return unsigned transactions; this server never holds your key.", "tools": [ { "description": "Free. Returns the exact EIP-191 message an address signs (personal_sign) to prove it is the address asking. ask_agent accepts it for 10 minutes. Signing it moves nothing and costs nothing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "Wallet that will sign and ask.", "type": "string" }, "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol", "address" ], "type": "object" }, "name": "access_message", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "address": { "description": "Address, on bad_address.", "type": [ "string", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "message": { "description": "The exact EIP-191 message to sign.", "type": [ "string", "null" ] }, "next": { "description": "What to do next.", "type": [ "string", "null" ] }, "sign": { "description": "How to sign it.", "type": [ "string", "null" ] }, "symbol": { "description": "Ticker, on unknown_market.", "type": [ "string", "null" ] }, "validForSeconds": { "description": "How long ask_agent accepts it.", "type": [ "number", "null" ] } }, "type": "object" } }, { "description": "Asks the market's own agent a question about that market. Open to an address whose stake in the market's stake contract is active (check_stake), proven with a signed access_message. The answer comes from glm-5.3 on the 0G router and is limited to facts read on-chain for this call; the tool returns those facts next to the answer. Refused without an active stake, and nothing is charged either way.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "The asking wallet. Must hold an active stake.", "type": "string" }, "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "message": { "description": "The exact message from access_message.", "maxLength": 400, "type": "string" }, "question": { "description": "What to ask the agent about this market.", "maxLength": 500, "minLength": 3, "type": "string" }, "signature": { "description": "personal_sign signature of message by address.", "type": "string" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol", "address", "message", "signature", "question" ], "type": "object" }, "name": "ask_agent", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "answer": { "description": "The agent's answer, limited to the facts below.", "type": [ "string", "null" ] }, "answered": { "description": "True when the agent answered.", "type": [ "boolean", "null" ] }, "answeredBy": { "description": "Model and route that answered.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id of the market.", "type": [ "number", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "facts": { "description": "Facts read on chain for this answer." }, "httpStatus": { "description": "On model_failed: the model's HTTP status.", "type": [ "number", "null" ] }, "retryAfterSeconds": { "description": "On rate_limited: seconds until the next question is allowed.", "type": [ "number", "null" ] }, "stake": { "description": "The stake position that opened the agent." }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "Executes the buy. Called without xPayment it returns the HTTP 402 challenge, which is the correct first response and not an error. Called with a signed x402 payload in xPayment it settles on Base and the curve on the destination chain sends the tokens straight to `to`. You never need native gas on the destination chain and never need to bridge.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" }, "to": { "description": "Address that receives the tokens. The curve sends them here directly; we never custody them.", "type": "string" }, "xPayment": { "description": "Base64-encoded x402 payment payload containing the signed EIP-3009 authorization. Omit it to receive the 402 challenge first.", "type": "string" } }, "required": [ "symbol", "to" ], "type": "object" }, "name": "buy_token", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "challenge": { "description": "On 402: the payment terms in accepts[0]." }, "httpStatus": { "description": "Status the gateway answered.", "type": [ "number", "null" ] }, "next": { "description": "What to do next.", "type": [ "string", "null" ] }, "paymentRequired": { "description": "True when this is the 402 challenge to sign.", "type": [ "boolean", "null" ] }, "result": { "description": "On a paid call: delivery and settlement transactions, or the gateway's refusal." }, "settled": { "description": "True when the payment settled and the tokens were delivered.", "type": [ "boolean", "null" ] } }, "type": "object" } }, { "description": "Free. Reads the market's stake contract on its own chain: its own AdextoAgentStake where it has one, otherwise the chain's AdextoStakeHub, which accepts every other market launched through ADEXTO from its first block. Returns how much an address has staked, the minimum, whether the position is active (at or above the minimum), and the totals. An active stake opens ask_agent for that market and an Agent Compute API key (see get_market staking.unlocks). There is no lock and no reward: unstake works at any time.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "Wallet whose stake to read.", "type": "string" }, "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol", "address" ], "type": "object" }, "name": "check_stake", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "active": { "description": "True when the stake is at or above the minimum.", "type": [ "boolean", "null" ] }, "address": { "description": "Wallet read.", "type": [ "string", "null" ] }, "chain": { "description": "Chain name and id.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id of the market.", "type": [ "number", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "kind": { "description": "dedicated or hub.", "type": [ "string", "null" ] }, "lock": { "description": "Always none: unstake works at any time.", "type": [ "string", "null" ] }, "minStake": { "description": "Minimum for an active stake, in whole tokens.", "type": [ "string", "null" ] }, "stakeContract": { "description": "Stake contract read.", "type": [ "string", "null" ] }, "staked": { "description": "Staked, in whole tokens.", "type": [ "string", "null" ] }, "stakers": { "description": "Number of stakers.", "type": [ "number", "null" ] }, "staking": { "description": "False when the market's chain has no stake contract for it.", "type": [ "boolean", "null" ] }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] }, "totalStaked": { "description": "Total staked in this market, in whole tokens.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "Full detail for a single market: chain, curve address, supply, fee rates, current price in the chain's native asset, and which read path serves its trade history. Free.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol" ], "type": "object" }, "name": "get_market", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "agentIdentity": { "anyOf": [ { "additionalProperties": {}, "properties": { "agentId": { "description": "ERC-8004 agent id on the market's chain.", "type": [ "string", "null" ] }, "agentRegistry": { "description": "eip155:<chainId>:<registry address>.", "type": [ "string", "null" ] }, "source": { "description": "token-contract when read from the token now, registry-copy when copied at launch.", "type": [ "string", "null" ] }, "standard": { "description": "Always ERC-8004.", "type": [ "string", "null" ] } }, "type": "object" }, { "type": "null" } ], "description": "The ERC-8004 agent the token is bound to, or null when unbound." }, "buyResource": { "description": "x402 URL that sells this market.", "type": [ "string", "null" ] }, "chain": { "description": "Chain name and id.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id of the market.", "type": [ "number", "null" ] }, "creator": { "description": "Creator address, paid the creator fee.", "type": [ "string", "null" ] }, "curve": { "description": "Bonding curve contract.", "type": [ "string", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "historySource": { "description": "indexer or rpc-logs.", "type": [ "string", "null" ] }, "known": { "description": "On unknown_market: the tickers that do exist.", "items": { "type": "string" }, "type": "array" }, "launchBlock": { "description": "Launch block.", "type": [ "number", "null" ] }, "launchTx": { "description": "Launch transaction.", "type": [ "string", "null" ] }, "lpFeeBps": { "description": "Fee kept in the curve, in basis points.", "type": [ "number", "null" ] }, "name": { "description": "Token name.", "type": [ "string", "null" ] }, "nativeSymbol": { "description": "Native asset of the chain.", "type": [ "string", "null" ] }, "priceNative": { "description": "Price of one token in the native asset.", "type": [ "number", "null" ] }, "slug": { "description": "URL slug of the market.", "type": [ "string", "null" ] }, "staking": { "anyOf": [ { "additionalProperties": {}, "properties": { "contract": { "description": "Stake contract: the market's own, or its chain's stake hub.", "type": [ "string", "null" ] }, "howToStake": { "description": "The two calls a hub stake needs.", "type": [ "string", "null" ] }, "kind": { "description": "dedicated or hub.", "type": [ "string", "null" ] }, "lock": { "description": "Always none: unstake works at any time.", "type": [ "string", "null" ] }, "minStake": { "description": "Minimum active stake, in whole tokens.", "type": [ "number", "null" ] }, "minimumRule": { "description": "How a hub minimum is derived.", "type": [ "string", "null" ] }, "token": { "description": "Token to stake.", "type": [ "string", "null" ] }, "unlocks": { "description": "What an active stake opens.", "type": [ "string", "null" ] } }, "type": "object" }, { "type": "null" } ], "description": "How to stake this market, or null when its chain has no stake contract." }, "supply": { "description": "Total supply in whole tokens.", "type": [ "number", "null" ] }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] }, "token": { "description": "Token contract.", "type": [ "string", "null" ] }, "tradable": { "description": "Whether the curve is live.", "type": [ "boolean", "null" ] }, "treasuryBuybackBps": { "description": "Buyback-and-burn fee, in basis points.", "type": [ "number", "null" ] } }, "type": "object" } }, { "description": "The exact steps to turn a 402 challenge into a settled cross-chain buy: what to sign, which chain settles, and which header carries the payment. Free. Read this if you have never paid an x402 endpoint before.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {}, "type": "object" }, "name": "how_to_pay", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "header": { "description": "Header that carries the payment.", "type": [ "string", "null" ] }, "headerNote": { "description": "Which payment header names the gateway reads.", "type": [ "string", "null" ] }, "orderOfOperations": { "description": "Delivery runs before the charge.", "type": [ "string", "null" ] }, "protocol": { "description": "Payment protocol.", "type": [ "string", "null" ] }, "replayProtection": { "description": "Why one authorization cannot be spent twice.", "type": [ "string", "null" ] }, "scheme": { "description": "x402 scheme and transfer method.", "type": [ "string", "null" ] }, "settlementAsset": { "description": "Asset paid.", "type": [ "string", "null" ] }, "settlementChain": { "description": "Chain the payment settles on.", "type": [ "string", "null" ] }, "steps": { "description": "Steps from challenge to settled buy.", "items": { "type": "string" }, "type": "array" }, "youNeverNeed": { "description": "What a buyer never needs.", "items": { "type": "string" }, "type": "array" } }, "type": "object" } }, { "description": "Every bonding-curve market this gateway can sell, across all chains it serves, with its ticker, chain, curve address and whether it is currently tradable. Free. Start here: the buy tools require a ticker and deliberately have no default.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {}, "type": "object" }, "name": "list_markets", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "count": { "description": "Number of markets.", "type": [ "number", "null" ] }, "markets": { "description": "Every market served, on every chain.", "items": { "additionalProperties": {}, "properties": { "agentIdentity": { "anyOf": [ { "additionalProperties": {}, "properties": { "agentId": { "description": "ERC-8004 agent id on the market's chain.", "type": [ "string", "null" ] }, "agentRegistry": { "description": "eip155:<chainId>:<registry address>.", "type": [ "string", "null" ] }, "source": { "description": "token-contract when read from the token now, registry-copy when copied at launch.", "type": [ "string", "null" ] }, "standard": { "description": "Always ERC-8004.", "type": [ "string", "null" ] } }, "type": "object" }, { "type": "null" } ], "description": "The ERC-8004 agent the token is bound to, or null when unbound." }, "chain": { "description": "Chain name and id.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id of the market.", "type": [ "number", "null" ] }, "curve": { "description": "Bonding curve contract, or null when none is live.", "type": [ "string", "null" ] }, "historySource": { "description": "indexer or rpc-logs: which read path serves trade_history.", "type": [ "string", "null" ] }, "name": { "description": "Token name.", "type": [ "string", "null" ] }, "nativeSymbol": { "description": "Native asset of the chain.", "type": [ "string", "null" ] }, "priceNative": { "description": "Last recorded price of one token in the chain's native asset.", "type": [ "number", "null" ] }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] }, "token": { "description": "Token contract.", "type": [ "string", "null" ] }, "tradable": { "description": "Whether the curve is live and can be bought.", "type": [ "boolean", "null" ] } }, "type": "object" }, "type": "array" }, "note": { "description": "How delivery works and what agentIdentity means.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "Buys a market for real, completing the step an LLM cannot do alone: signing the EIP-3009 USDC authorisation. IMPORTANT for honest reporting — the signature is made by the operator's wallet on the server, not by a wallet you control, so describe the result as 'executed the purchase', not 'paid from my own funds'. Refuses unless the caller carries the agent key, and refuses any quote whose asset, network, recipient or amount does not match the hard-coded limits. Delivery always goes to the signer.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol" ], "type": "object" }, "name": "pay_and_buy", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "amountUsdc": { "description": "USDC paid.", "type": [ "string", "null" ] }, "buyback": { "description": "Automatic buyback result, when one ran." }, "chain": { "description": "Chain of the market.", "type": [ "string", "null" ] }, "delivery": { "description": "Delivery transaction on the market's chain." }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "gatewayError": { "description": "The gateway's answer when it did not settle." }, "httpStatus": { "description": "Status the gateway answered.", "type": [ "number", "null" ] }, "known": { "description": "On unknown_market: the tickers that do exist.", "items": { "type": "string" }, "type": "array" }, "limits": { "description": "On refused_by_limits: the hard limits the quote did not meet." }, "paidBy": { "description": "Operator wallet that signed the payment.", "type": [ "string", "null" ] }, "retryAfterSeconds": { "description": "On rate_limited: seconds until the next purchase is allowed.", "type": [ "number", "null" ] }, "settled": { "description": "True when the payment settled.", "type": [ "boolean", "null" ] }, "settlement": { "description": "Settlement transaction on Base." }, "signedBy": { "description": "Who signed: the operator wallet on the server, not the agent.", "type": [ "string", "null" ] }, "symbol": { "description": "Ticker bought.", "type": [ "string", "null" ] }, "terminal": { "description": "Market page.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "Unsigned transactions that collect the creator fee owed to an address across its markets: one claimCreatorFees() call per curve, or one Multicall3 batch per chain when several are owed. The curve always pays its immutable creator, whoever sends the transaction.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "Creator address whose owed fees to collect.", "pattern": "^0x[a-fA-F0-9]{40}$", "type": "string" }, "chainId": { "description": "Only this chain. Omit for every chain.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "address" ], "type": "object" }, "name": "prepare_claim", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "address": { "description": "Creator address.", "type": [ "string", "null" ] }, "checkedMarkets": { "description": "Markets checked." }, "claimable": { "description": "Markets that owe this address a creator fee.", "items": { "additionalProperties": {}, "properties": { "chainId": { "description": "Chain id.", "type": [ "number", "null" ] }, "curve": { "description": "Curve that owes the fee.", "type": [ "string", "null" ] }, "nativeSymbol": { "description": "Native asset.", "type": [ "string", "null" ] }, "owed": { "description": "Owed, in the chain's native asset.", "type": [ "number", "null" ] }, "owedUsd": { "description": "Owed, in USD at the current native price.", "type": [ "number", "null" ] }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] } }, "type": "object" }, "type": "array" }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "note": { "description": "Who receives the fee.", "type": [ "string", "null" ] }, "transactions": { "description": "One claim per curve, or one Multicall3 batch per chain.", "items": { "additionalProperties": {}, "properties": { "chainId": { "description": "Chain to send it on.", "type": [ "number", "null" ] }, "data": { "description": "Calldata.", "type": [ "string", "null" ] }, "from": { "description": "Address that must sign and send it.", "type": [ "string", "null" ] }, "gasEstimate": { "description": "Gas estimate, or null when it can only be estimated after the previous transaction is mined.", "type": [ "string", "null" ] }, "markets": { "description": "Markets a claim covers.", "items": { "type": "string" }, "type": "array" }, "purpose": { "description": "What the transaction does.", "type": [ "string", "null" ] }, "to": { "description": "Contract it calls.", "type": [ "string", "null" ] }, "value": { "description": "Native value in wei. Always 0.", "type": [ "string", "null" ] } }, "type": "object" }, "type": "array" }, "unreadableMarkets": { "description": "Markets that could not be read." } }, "type": "object" } }, { "description": "Launch a new ADEXTO market without handing over a key. Call it once without a signature: it checks the ticker, the chain and an optional ERC-8004 agent you own, and returns an attestation message for the deployer to sign (EIP-191). Call it again with the same arguments plus attestationMessage and attestationSignature: it anchors the launch metadata and returns the unsigned deployTrinity transaction (value 0, gas only), simulated from your address, with a gas estimate. Fee preset: 1.00% per trade, 0.70% to the creator. All supply goes into the curve; the creator gets no allocation. After the transaction is mined, call register_launch.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "agentId": { "description": "ERC-8004 agent id on this chain to bind to the token, owned by the deployer. Omit to launch unbound.", "pattern": "^\\d{1,78}$", "type": "string" }, "attestationMessage": { "description": "Second call only: the message the first call returned.", "maxLength": 400, "type": "string" }, "attestationSignature": { "description": "Second call only: the deployer's EIP-191 signature of it.", "maxLength": 200, "type": "string" }, "category": { "description": "Market category shown on the explorer.", "enum": [ "defi", "agents", "meme", "gaming", "infra", "rwa", "social", "other" ], "type": "string" }, "chainId": { "description": "Chain to launch on: 143 Monad, 42161 Arbitrum One, 4663 Robinhood Chain, 8453 Base, 16661 0G.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "deployer": { "description": "Address that signs the attestation and sends the launch transaction. It becomes the market's creator and receives the creator fee.", "pattern": "^0x[a-fA-F0-9]{40}$", "type": "string" }, "description": { "description": "One-line pitch shown on the market page.", "maxLength": 280, "type": "string" }, "docs": { "description": "Documentation URL, shown on the market page.", "maxLength": 200, "type": "string" }, "github": { "description": "GitHub URL of the project, shown on the market page.", "maxLength": 200, "type": "string" }, "image": { "description": "Logo as a base64 data URI (image/png, image/jpeg or image/webp). Omit for the default logo.", "maxLength": 200000, "type": "string" }, "name": { "description": "Token name, up to 64 bytes.", "maxLength": 64, "minLength": 1, "type": "string" }, "symbol": { "description": "Ticker, 2 to 12 letters A-Z or digits. Permanent on chain.", "maxLength": 12, "minLength": 2, "type": "string" }, "website": { "description": "Project website URL, shown on the market page. https:// is assumed when no scheme is given.", "maxLength": 200, "type": "string" }, "x": { "description": "X handle or URL.", "maxLength": 200, "type": "string" } }, "required": [ "chainId", "name", "symbol", "deployer" ], "type": "object" }, "name": "prepare_launch", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "attestationMessage": { "description": "Step one: the message to sign with personal_sign.", "type": [ "string", "null" ] }, "attestationRoot": { "description": "Metadata root written on chain.", "type": [ "string", "null" ] }, "chain": { "description": "Chain name.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain to launch on.", "type": [ "number", "null" ] }, "checks": { "description": "Step one: ticker and agent checks already passed." }, "code": { "description": "On prepare_failed: error code of the preparation stage.", "type": [ "string", "null" ] }, "deployer": { "description": "Address that signs and sends.", "type": [ "string", "null" ] }, "deployerBalanceWei": { "description": "Deployer balance.", "type": [ "string", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "estimatedCostWei": { "description": "Estimated cost in wei.", "type": [ "string", "null" ] }, "fundsSufficient": { "description": "Whether the balance covers the estimate.", "type": [ "boolean", "null" ] }, "gasEstimate": { "description": "Step two: estimated gas.", "type": [ "string", "null" ] }, "gasPriceWei": { "description": "Current gas price.", "type": [ "string", "null" ] }, "gasSource": { "description": "estimateGas or measured.", "type": [ "string", "null" ] }, "launchableChains": { "description": "On unsupported_chain: the chains that can launch." }, "market": { "description": "The market the launch creates: supply, fee split, opening market cap, agent." }, "metadataAnchoredTo0G": { "description": "True when the metadata was stored on 0G DA.", "type": [ "boolean", "null" ] }, "name": { "description": "Token name.", "type": [ "string", "null" ] }, "nativeSymbol": { "description": "Native asset that pays the gas.", "type": [ "string", "null" ] }, "next": { "description": "What to do next.", "type": [ "string", "null" ] }, "quota": { "description": "On creator_ticker_limit: this address's ticker quota." }, "retryAfterSeconds": { "description": "On a rate limit: seconds to wait.", "type": [ "number", "null" ] }, "signWith": { "description": "Step one: how to sign.", "type": [ "string", "null" ] }, "simulation": { "additionalProperties": {}, "description": "The transaction simulated from the deployer.", "properties": { "ok": { "description": "True when the simulation did not revert.", "type": [ "boolean", "null" ] }, "revert": { "description": "Revert reason, if any.", "type": [ "string", "null" ] } }, "type": "object" }, "status": { "description": "On prepare_failed: HTTP status of the preparation stage.", "type": [ "number", "null" ] }, "step": { "description": "sign_attestation on the first call, sign_and_send on the second.", "type": [ "string", "null" ] }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] }, "transaction": { "additionalProperties": {}, "description": "Step two: the unsigned launch transaction.", "properties": { "chainId": { "description": "Chain id.", "type": [ "number", "null" ] }, "data": { "description": "deployTrinity calldata.", "type": [ "string", "null" ] }, "from": { "description": "Deployer.", "type": [ "string", "null" ] }, "gas": { "description": "Gas limit to send with.", "type": [ "string", "null" ] }, "to": { "description": "ADEXTO launch factory.", "type": [ "string", "null" ] }, "value": { "description": "Always 0: a launch costs gas only.", "type": [ "string", "null" ] } }, "type": "object" }, "unavailableChains": { "description": "Chains the preparation stage could not open." }, "validForSeconds": { "description": "Step one: how long the attestation is accepted.", "type": [ "number", "null" ] } }, "type": "object" } }, { "description": "Unsigned transactions that stake a market's token in its stake contract or its chain's stake hub: an approval for the exact amount (only if the allowance is short), then the stake. Checks balance, minimum and hub eligibility first, so a stake that would revert is refused before any gas is spent. No lock: unstake works at any time. A stake opens ask_agent for that market.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "Wallet that holds the tokens and will sign.", "pattern": "^0x[a-fA-F0-9]{40}$", "type": "string" }, "amount": { "description": "Whole tokens to stake, for example \"10000\".", "pattern": "^\\d+(\\.\\d{1,18})?$", "type": "string" }, "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol", "address", "amount" ], "type": "object" }, "name": "prepare_stake", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "after": { "additionalProperties": {}, "description": "The position once the transactions are mined.", "properties": { "active": { "description": "Active after staking.", "type": [ "boolean", "null" ] }, "minimum": { "description": "Minimum.", "type": [ "string", "null" ] }, "staked": { "description": "Position after staking.", "type": [ "string", "null" ] } }, "type": "object" }, "alreadyStaked": { "description": "On below_minimum: the current position.", "type": [ "string", "null" ] }, "balance": { "description": "On insufficient_balance: the wallet's balance.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id.", "type": [ "number", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "kind": { "description": "dedicated or hub.", "type": [ "string", "null" ] }, "lock": { "description": "Always none.", "type": [ "string", "null" ] }, "market": { "description": "Ticker and chain.", "type": [ "string", "null" ] }, "minimum": { "description": "On below_minimum: the minimum.", "type": [ "string", "null" ] }, "next": { "description": "What to do next.", "type": [ "string", "null" ] }, "order": { "description": "Sending order.", "type": [ "string", "null" ] }, "stakeContract": { "description": "Stake contract the transactions call.", "type": [ "string", "null" ] }, "token": { "description": "Token staked.", "type": [ "string", "null" ] }, "transactions": { "description": "Send in order: an exact approval if needed, then the stake.", "items": { "additionalProperties": {}, "properties": { "chainId": { "description": "Chain to send it on.", "type": [ "number", "null" ] }, "data": { "description": "Calldata.", "type": [ "string", "null" ] }, "from": { "description": "Address that must sign and send it.", "type": [ "string", "null" ] }, "gasEstimate": { "description": "Gas estimate, or null when it can only be estimated after the previous transaction is mined.", "type": [ "string", "null" ] }, "markets": { "description": "Markets a claim covers.", "items": { "type": "string" }, "type": "array" }, "purpose": { "description": "What the transaction does.", "type": [ "string", "null" ] }, "to": { "description": "Contract it calls.", "type": [ "string", "null" ] }, "value": { "description": "Native value in wei. Always 0.", "type": [ "string", "null" ] } }, "type": "object" }, "type": "array" } }, "type": "object" } }, { "description": "Reads the gateway's HTTP 402 challenge for a market and returns the quote and payment requirements without spending anything. The challenge carries the exact amount, the asset, the payTo address and the EIP-3009 domain, so an agent can decide before it signs. Free. This is the tool to call before buy_token.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" }, "to": { "description": "Recipient address for the tokens. Optional for a quote; the curve delivers straight to it on a real buy.", "type": "string" } }, "required": [ "symbol" ], "type": "object" }, "name": "quote_buy", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "challenge": { "description": "The gateway's answer: on 402, x402Version, accepts[0] with the payment terms, and quote." }, "httpStatus": { "description": "Status the gateway answered: 402 is a quote.", "type": [ "number", "null" ] }, "next": { "description": "What to do next.", "type": [ "string", "null" ] }, "quoted": { "description": "True when the gateway returned a 402 quote.", "type": [ "boolean", "null" ] }, "resource": { "description": "Gateway URL that was quoted.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "After the prepare_launch transaction is mined, lists the new market on adexto.xyz, in list_markets and on the x402 gateway. Reads the TrinityProjectDeployed event from the ADEXTO factory in the receipt; every value it registers comes from that event, not from the caller. Calling it again for the same transaction returns the existing listing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chainId": { "description": "Chain the launch transaction was sent on.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "txHash": { "description": "Hash of the mined launch transaction.", "pattern": "^0x[a-fA-F0-9]{64}$", "type": "string" } }, "required": [ "chainId", "txHash" ], "type": "object" }, "name": "register_launch", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "agentIdentity": { "description": "ERC-8004 binding read from the token, or null." }, "alreadyRegistered": { "description": "True when it was listed before this call.", "type": [ "boolean", "null" ] }, "buyResource": { "description": "x402 URL that sells the market.", "type": [ "string", "null" ] }, "chain": { "description": "Chain name.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id.", "type": [ "number", "null" ] }, "code": { "description": "On confirm_failed: error code of the registration stage.", "type": [ "string", "null" ] }, "creator": { "description": "Creator address, from the factory event.", "type": [ "string", "null" ] }, "curve": { "description": "Bonding curve contract.", "type": [ "string", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "explorerTx": { "description": "Explorer link of the launch transaction.", "type": [ "string", "null" ] }, "launchableChains": { "description": "On unsupported_chain: the chains that can launch." }, "metadataApplied": { "description": "True when the prepare_launch metadata was applied.", "type": [ "boolean", "null" ] }, "name": { "description": "Token name.", "type": [ "string", "null" ] }, "next": { "description": "What to do next.", "type": [ "string", "null" ] }, "note": { "description": "Context for a failed registration.", "type": [ "string", "null" ] }, "page": { "description": "Market page.", "type": [ "string", "null" ] }, "registered": { "description": "True when the market is listed.", "type": [ "boolean", "null" ] }, "status": { "description": "On confirm_failed: HTTP status of the registration stage.", "type": [ "number", "null" ] }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] }, "token": { "description": "Token contract.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "Trade history for a market, newest first, with an explicit statement of whether it reaches the launch block. Free. Monad is served by our Envio indexer, which has no lookback window; the other chains are served by a log scan whose reach is reported per call. When the scan cannot reach the launch block the answer says so instead of presenting a shortened list as the whole history.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chainId": { "description": "Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "limit": { "description": "Rows to return, newest first. Default 50, maximum 400.", "maximum": 400, "minimum": 1, "type": "integer" }, "symbol": { "description": "Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. Call list_markets first if you do not know it.", "minLength": 1, "type": "string" } }, "required": [ "symbol" ], "type": "object" }, "name": "trade_history", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "chain": { "description": "Chain name and id.", "type": [ "string", "null" ] }, "chainId": { "description": "Chain id of the market.", "type": [ "number", "null" ] }, "complete": { "description": "True only when the answer reaches the launch block.", "type": [ "boolean", "null" ] }, "completeBecause": { "description": "Why the history is complete.", "type": [ "string", "null" ] }, "coverage": { "description": "What the log scan reached." }, "curve": { "description": "Bonding curve contract.", "type": [ "string", "null" ] }, "degraded": { "description": "True when the indexer failed and a log scan answered instead.", "type": [ "boolean", "null" ] }, "detail": { "description": "Why it refused, or extra context on a successful answer." }, "error": { "description": "Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.", "type": [ "string", "null" ] }, "incompleteBecause": { "description": "Why older swaps may be missing.", "type": [ "string", "null" ] }, "indexerError": { "description": "Why the indexer was skipped, when it was." }, "indexerSyncedToBlock": { "description": "Block the indexer has reached.", "type": [ "number", "null" ] }, "known": { "description": "On unknown_market: the tickers that do exist.", "items": { "type": "string" }, "type": "array" }, "launchBlock": { "description": "Launch block of the market.", "type": [ "number", "null" ] }, "note": { "description": "Context for a read failure.", "type": [ "string", "null" ] }, "publicEndpoint": { "description": "Public GraphQL endpoint of the indexer.", "type": [ "string", "null" ] }, "returned": { "description": "Rows in swaps.", "type": [ "number", "null" ] }, "source": { "description": "envio-hyperindex or rpc-logs.", "type": [ "string", "null" ] }, "swaps": { "description": "Swaps, newest first.", "items": { "additionalProperties": {}, "properties": { "amountNative": { "description": "Native asset moved.", "type": [ "number", "null" ] }, "amountToken": { "description": "Tokens moved.", "type": [ "number", "null" ] }, "blockNumber": { "description": "Block of the swap.", "type": [ "number", "null" ] }, "executionPriceNative": { "description": "Price actually paid or received, fees included.", "type": [ "number", "null" ] }, "nativeSymbol": { "description": "Native asset of the chain.", "type": [ "string", "null" ] }, "side": { "description": "buy or sell.", "type": [ "string", "null" ] }, "spotPriceAfter": { "description": "Curve spot price after this swap.", "type": [ "number", "null" ] }, "timestamp": { "description": "ISO 8601 time of the block.", "type": [ "string", "null" ] }, "trader": { "description": "Address that traded.", "type": [ "string", "null" ] }, "txHash": { "description": "Swap transaction.", "type": [ "string", "null" ] } }, "type": "object" }, "type": "array" }, "symbol": { "description": "Ticker.", "type": [ "string", "null" ] }, "totalSwaps": { "description": "Swaps since launch, from the indexer.", "type": [ "number", "null" ] } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:7bf3b5714105a4df10b3654069cf1e8f72ce1381dba4b553ed993f3da2881957 | sha256sum