{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":false}},"agentGuidance":{"description":"General guidance for external AI agents using this MCP server. Read before selecting a project endpoint, requesting tool schemas, or calling protocol tools.","skillUrl":"https://erc8004.heyanon.ai/mcp/skill.md"},"serverInfo":{"name":"heyanon-erc8004-crosschain","version":"1.0.0"},"tools":[{"name":"bridgeTokens","title":"Bridge Tokens","description":"Bridge or cross-chain swap tokens along with gas (native token) from source chain to destination chain. User pays for destination gas with source native token","inputSchema":{"type":"object","properties":{"srcUserAddress":{"type":"string","description":"The wallet address of the user on the source chain"},"dstUserAddress":{"type":"string","description":"The wallet address of the user on the destination chain"},"srcChain":{"type":"string","enum":["ethereum","optimism","bsc","gnosis","polygon","sonic","zksync","metis","kava_evm","base","avalanche","arbitrum","scroll","solana","ton","hyperevm","plasma","monad"],"description":"The source chain of the token to bridge"},"srcChainToken":{"type":"string","description":"The address of the token to bridge"},"srcChainTokenAmount":{"type":"string","description":"The amount of token to bridge in human-readable decimal format (e.g. '1.5'). Use \"-1\" when user requests to bridge their entire balance."},"dstChain":{"type":"string","enum":["ethereum","optimism","bsc","gnosis","polygon","sonic","zksync","metis","kava_evm","base","avalanche","arbitrum","scroll","solana","ton","hyperevm","plasma","monad"],"description":"The destination chain to bridge the token to"},"dstChainToken":{"type":"string","description":"The address of the token on the destination chain"},"gasOnDestination":{"type":"string","description":"The amount of native (gas) token to get on the destination chain in human-readable decimal format (e.g. '0.01'). Use empty string when user does not request destination gas."},"gasOnDestinationInUsd":{"type":"boolean","description":"Set to true if gasOnDestination is specified in USD"}},"required":["srcUserAddress","dstUserAddress","srcChain","srcChainToken","srcChainTokenAmount","dstChain","dstChainToken","gasOnDestination","gasOnDestinationInUsd"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"chainId":{"type":"number","description":"EVM chain ID"},"transaction":{"type":"object","properties":{"target":{"type":"string","description":"Target contract address"},"data":{"type":"string","description":"ABI-encoded calldata"},"value":{"description":"Native token value in wei","type":"string"}},"required":["target","data"],"additionalProperties":false,"description":"EVM transaction parameters"}},"required":["chainId","transaction"],"additionalProperties":false},{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},{"type":"object","properties":{"transaction":{"type":"object","properties":{"to":{"type":"string","description":"Recipient address in friendly format"},"value":{"type":"string","description":"Amount in nanoTON as a decimal string"},"body":{"type":"string","description":"Base64-encoded BOC of the message body"},"sendMode":{"type":"number","description":"TON send mode flags"}},"required":["to","value","body","sendMode"],"additionalProperties":false,"description":"Serialized TON transaction details"}},"required":["transaction"],"additionalProperties":false}]},"description":"Transactions to sign and broadcast (EVM, Solana, or TON depending on chain)"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","transactions","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"forcedClaimAssets","title":"Force Claim Assets","description":"Forced claim assets from a bridged token on the destination chain. Only can be used if assets are stuck on the destination chain.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The wallet address of the user on the destination chain to claim assets to"},"chainName":{"type":"string","enum":["bsc","optimism","polygon","kava_evm","ethereum","avalanche","arbitrum","metis","base","scroll","zksync","sonic","solana","ton","hyperevm","plasma","monad"],"description":"The source chain of the bridged token"},"transactionHash":{"type":"string","description":"The transaction hash of the bridged token on a source chain"}},"required":["userAddress","chainName","transactionHash"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"chainId":{"type":"number","description":"EVM chain ID"},"transaction":{"type":"object","properties":{"target":{"type":"string","description":"Target contract address"},"data":{"type":"string","description":"ABI-encoded calldata"},"value":{"description":"Native token value in wei","type":"string"}},"required":["target","data"],"additionalProperties":false,"description":"EVM transaction parameters"}},"required":["chainId","transaction"],"additionalProperties":false},{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},{"type":"object","properties":{"transaction":{"type":"object","properties":{"to":{"type":"string","description":"Recipient address in friendly format"},"value":{"type":"string","description":"Amount in nanoTON as a decimal string"},"body":{"type":"string","description":"Base64-encoded BOC of the message body"},"sendMode":{"type":"number","description":"TON send mode flags"}},"required":["to","value","body","sendMode"],"additionalProperties":false,"description":"Serialized TON transaction details"}},"required":["transaction"],"additionalProperties":false}]},"description":"Transactions to sign and broadcast (EVM, Solana, or TON depending on chain)"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Unsigned API requests to sign and send sequentially"}},"required":["project","operation","transactions","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"checkIfPathwayExist","title":"Check Bridge Pathway","description":"Check if a pathway exists for a cross-chain action","inputSchema":{"type":"object","properties":{"srcUserAddress":{"type":"string","description":"The wallet address of the user on the source chain"},"dstUserAddress":{"type":"string","description":"The wallet address of the user on the destination chain"},"srcChain":{"type":"string","enum":["ethereum","optimism","bsc","gnosis","polygon","sonic","zksync","metis","kava_evm","base","avalanche","arbitrum","scroll","solana","ton","hyperevm","plasma","monad"],"description":"The source chain of the token to bridge"},"srcChainToken":{"type":"string","description":"The address of the token to bridge"},"dstChain":{"type":"string","enum":["ethereum","optimism","bsc","gnosis","polygon","sonic","zksync","metis","kava_evm","base","avalanche","arbitrum","scroll","solana","ton","hyperevm","plasma","monad"],"description":"The destination chain to bridge the token to"},"dstChainToken":{"type":"string","description":"The address of the token on the destination chain"}},"required":["srcUserAddress","dstUserAddress","srcChain","srcChainToken","dstChain","dstChainToken"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"object","properties":{"exists":{"type":"boolean","description":"Whether a valid cross-chain pathway was found"}},"required":["exists"],"additionalProperties":false}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}}]}