MCP-Server

ADEXTO

xyz.adexto/mcp
Krypto & Web3 Finanzen & Investieren Payments & Fintech Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Lists and operates bonding-curve token markets across chains, including buying, launching, staking, trading history, and creator-fee claims.

access_message
The message to sign before ask_agent
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol', 'address'], 'properties': {'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'address': {'type': 'string', 'description': 'Wallet that will sign and ask.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
ask_agent
Ask the market's agent (stake required)
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.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol', 'address', 'message', 'signature', 'question'], 'properties': {'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'address': {'type': 'string', 'description': 'The asking wallet. Must hold an active stake.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}, 'message': {'type': 'string', 'maxLength': 400, 'description': 'The exact message from access_message.'}, 'question': {'type': 'string', 'maxLength': 500, 'minLength': 3, 'description': 'What to ask the agent about this market.'}, 'signature': {'type': 'string', 'description': 'personal_sign signature of message by address.'}}}
buy_token
Buy a market cross-chain with USDC on Base
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.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Address that receives the tokens. The curve sends them here directly; we never custody them.'}, 'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}, 'xPayment': {'type': 'string', 'description': 'Base64-encoded x402 payment payload containing the signed EIP-3009 authorization. Omit it to receive the 402 challenge first.'}}}
check_stake
Read a wallet's stake in a market
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol', 'address'], 'properties': {'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'address': {'type': 'string', 'description': 'Wallet whose stake to read.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
get_market
One market in detail
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
how_to_pay
How to pay this gateway
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
list_markets
List every tradable ADEXTO market
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
pay_and_buy
Execute a buy end to end (operator-signed, capped)
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.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
prepare_claim
Prepare a creator fee claim
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['address'], 'properties': {'address': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Creator address whose owed fees to collect.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only this chain. Omit for every chain.', 'exclusiveMinimum': 0}}}
prepare_launch
Prepare a market launch for your own key to sign
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.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['chainId', 'name', 'symbol', 'deployer'], 'properties': {'x': {'type': 'string', 'maxLength': 200, 'description': 'X handle or URL.'}, 'docs': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Token name, up to 64 bytes.'}, 'image': {'type': 'string', 'maxLength': 200000, 'description': 'Logo as a base64 data URI (image/png, image/jpeg or image/webp). Omit for the default logo.'}, 'github': {'type': 'string', 'maxLength': 200}, 'symbol': {'type': 'string', 'maxLength': 12, 'minLength': 2, 'description': 'Ticker, 2 to 12 letters A-Z or digits. Permanent on chain.'}, 'agentId': {'type': 'string', 'pattern': '^\\d{1,78}$', 'description': 'ERC-8004 agent id on this chain to bind to the token, owned by the deployer. Omit to launch unbound.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Chain to launch on: 143 Monad, 42161 Arbitrum One, 4663 Robinhood Chain, 8453 Base, 16661 0G.', 'exclusiveMinimum': 0}, 'website': {'type': 'string', 'maxLength': 200}, 'category': {'enum': ['defi', 'agents', 'meme', 'gaming', 'infra', 'rwa', 'social', 'other'], 'type': 'string', 'description': 'Market category shown on the explorer.'}, 'deployer': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': "Address that signs the attestation and sends the launch transaction. It becomes the market's creator and receives the creator fee."}, 'description': {'type': 'string', 'maxLength': 280, 'description': 'One-line pitch shown on the market page.'}, 'attestationMessage': {'type': 'string', 'maxLength': 400, 'description': 'Second call only: the message the first call returned.'}, 'attestationSignature': {'type': 'string', 'maxLength': 200, 'description': "Second call only: the deployer's EIP-191 signature of it."}}}
prepare_stake
Prepare a stake for your own key to sign
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol', 'address', 'amount'], 'properties': {'amount': {'type': 'string', 'pattern': '^\\d+(\\.\\d{1,18})?$', 'description': 'Whole tokens to stake, for example "10000".'}, 'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'address': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Wallet that holds the tokens and will sign.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
quote_buy
Quote a cross-chain buy without paying
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol'], 'properties': {'to': {'type': 'string', 'description': 'Recipient address for the tokens. Optional for a quote; the curve delivers straight to it on a real buy.'}, 'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
register_launch
List a mined launch on ADEXTO
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.
Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['chainId', 'txHash'], 'properties': {'txHash': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{64}$', 'description': 'Hash of the mined launch transaction.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Chain the launch transaction was sent on.', 'exclusiveMinimum': 0}}}
trade_history
Every swap on a market, and how complete the answer is
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol'], 'properties': {'limit': {'type': 'integer', 'maximum': 400, 'minimum': 1, 'description': 'Rows to return, newest first. Default 50, maximum 400.'}, 'symbol': {'type': 'string', 'minLength': 1, '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.'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, '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}}}
Hinzugefügt
prepare_claim
3. October 2026 02:40
Hinzugefügt
prepare_stake
3. October 2026 02:40
Hinzugefügt
register_launch
3. October 2026 02:40
Hinzugefügt
prepare_launch
3. October 2026 02:40
Hinzugefügt
ask_agent
3. October 2026 02:40
Hinzugefügt
access_message
3. October 2026 02:40
Hinzugefügt
check_stake
3. October 2026 02:40
Hinzugefügt
trade_history
3. October 2026 02:40
Hinzugefügt
pay_and_buy
3. October 2026 02:40
Hinzugefügt
buy_token
3. October 2026 02:40
Hinzugefügt
how_to_pay
3. October 2026 02:40
Hinzugefügt
quote_buy
3. October 2026 02:40
Hinzugefügt
get_market
3. October 2026 02:40
Hinzugefügt
list_markets
3. October 2026 02:40