{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_98js56ud3bef","handle":"layerhop","url":"https://wellknown.network/agents/layerhop","links":{"self":"https://wellknown.network/agents/layerhop/record.json","html":"https://wellknown.network/agents/layerhop","markdown":"https://wellknown.network/agents/layerhop/record.md","api":"https://wellknown.network/api/v1/agents/layerhop","status":"https://wellknown.network/api/v1/agents/layerhop/status","claim":"https://wellknown.network/agents/layerhop/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/layerhop/claim.json","badge":"https://wellknown.network/agents/layerhop/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/layerhop/history","tools":"https://wellknown.network/api/v1/agents/layerhop/tools"},"ard":{"identifier":"urn:air:mcp.layerhop.com:server:layerhop","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"LayerHop","summary":"Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.","description":"Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.","publisher":{"name":"com.layerhop","url":null},"homepage":"https://docs.layerhop.com/guides/ai-agents","repository":"https://github.com/layerhop/layerhop-js","version":"0.5.0","license":"MIT","protocols":["mcp"],"tags":["layerhop","mcp","model-context-protocol","ai-agents","bridge","swap","cross-chain","claude","cursor","llm","solana","evm","defi"],"pricing":null,"endpoints":[{"url":"https://mcp.layerhop.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@layerhop/mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-18T15:45:30.68207Z","npmKeywords":["layerhop","mcp","model-context-protocol","ai-agents","bridge","swap","cross-chain","claude","cursor","llm","solana","evm","defi"],"publishedAt":"2026-10-18T15:45:30.68207Z","registryName":"com.layerhop/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"declared"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.525,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.51,"provenance":"derived"}],"categories":["commerce","communication","documents","finance"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-10-23T06:27:22.560Z","lastProbedAt":"2026-10-23T06:27:22.560Z","statusComputedAt":"2026-10-23T06:29:48.851Z","reliability30d":{"probes":6,"successRate":1,"p50Ms":79,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":6,"ok":6,"authBoundaryOk":0,"serviceOk":6,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-23T06:27:22.560Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":44,"error":null,"detail":{"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"toolCount":15,"toolsHash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","serverName":"layerhop","capabilities":["tools","resources","completions","prompts"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T00:30:12.934Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":266,"error":null,"detail":{"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"toolCount":15,"toolsHash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","serverName":"layerhop","capabilities":["tools","resources","completions","prompts"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T17:32:04.139Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":226,"error":null,"detail":{"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"toolCount":15,"toolsHash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","serverName":"layerhop","capabilities":["tools","resources","completions","prompts"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T11:32:44.714Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":30,"error":null,"detail":{"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"toolCount":15,"toolsHash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","serverName":"layerhop","capabilities":["tools","resources","completions","prompts"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:28:45.634Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"toolCount":15,"toolsHash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","serverName":"layerhop","capabilities":["tools","resources","completions","prompts"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T22:31:35.955Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"toolCount":15,"toolsHash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","serverName":"layerhop","capabilities":["tools","resources","completions","prompts"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"list_chains","description":"List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only."},{"name":"list_tokens","description":"List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted"},{"name":"get_quote","description":"Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus a"},{"name":"build_transaction","description":"Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to s"},{"name":"simulate_transaction","description":"Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything o"},{"name":"report_submitted","description":"Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, wit"},{"name":"get_order_status","description":"Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain pro"},{"name":"list_orders","description":"List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses"},{"name":"get_swap_link","description":"Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is th"},{"name":"create_deposit_address","description":"Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing n"},{"name":"list_deposit_addresses","description":"List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read"},{"name":"get_deposit_address","description":"Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, fille"},{"name":"refresh_deposit_address","description":"Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent fund"},{"name":"disable_deposit_address","description":"Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user mu"},{"name":"simulate_deposit","description":"TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settle"}],"package":{"name":"@layerhop/mcp","registry":"npm","observedAt":"2026-10-23T06:31:53.322Z","publishedAt":"2026-10-19T17:59:47.364Z","latestVersion":"0.7.0","weeklyDownloads":573},"toolSurface":{"id":"ts_b3am6wzsgjj5","endpointId":"ep_mmu6eyhrzn5z","hash":"0dd738b9f3776727af6587b0995a77d424c64ebfcd71c640dc5d2654d13044c6","toolCount":15,"serverName":"layerhop","serverVersion":"0.7.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-21T22:31:35.957Z","lastSeenAt":"2026-10-23T06:27:22.563Z","observations":6,"toolNames":["list_chains","list_tokens","get_quote","build_transaction","simulate_transaction","report_submitted","get_order_status","list_orders","get_swap_link","create_deposit_address","list_deposit_addresses","get_deposit_address","refresh_deposit_address","disable_deposit_address","simulate_deposit"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_mmu6eyhrzn5z","url":"https://mcp.layerhop.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-22T11:32:44.735Z","auth":{"observedAt":"2026-10-22T11:32:44.757Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-22T11:32:44.918Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"mcp.layerhop.com","issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validFrom":"2026-10-17T11:16:18.000Z","validTo":"2027-01-15T11:16:17.000Z","daysToExpiry":84,"sanCount":1,"fingerprint256":"DD:09:13:59:86:FF:1B:78:3B:43:F8:21:EF:DE:02:FF:8C:3D:AA:0A:89:02:4E:57:18:62:CD:B7:4D:27:37:15"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"@layerhop/mcp","url":"https://www.npmjs.com/package/@layerhop/mcp","firstSeenAt":"2026-10-23T00:21:13.602Z","fetchedAt":"2026-10-23T00:21:13.602Z","normalizedAt":"2026-10-23T00:21:13.602Z"},{"source":"mcp_registry","key":"com.layerhop/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/com.layerhop%2Fmcp","firstSeenAt":"2026-10-21T21:22:31.233Z","fetchedAt":"2026-10-21T21:22:31.233Z","normalizedAt":"2026-10-21T21:22:31.233Z"}]},"firstSeenAt":"2026-10-21T21:22:31.233Z","updatedAt":"2026-10-23T06:31:53.322Z"}