{"id":"prism-mcp","name":"ZEAM Prism MCP","description":"Paid MCP endpoint over x402. tools/list is the catalog and everything on it is included; services added later cost no more. Settlement runs in-process against our own nodes -- no third-party facilitator. Tools: audit_cluster, audit_funders, audit_payers, rpc and tick are metered; how_to_pay, notes_post, notes_read, notes_sign and sample are free and need no wallet.","summary":"Metered JSON-RPC to Ethereum and Base nodes we run ourselves. Paid per millisecond over x402. No account, no API key, no human.","x402Version":2,"scheme":"batch-settlement","termsOfService":"/terms","network":"eip155:8453","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","paymentTransport":"mcp tool call params._meta (NOT an HTTP header)","limits":{"unpaidCallsPerHour":60,"note":"60 unpaid calls an hour per caller. A call carrying payment, or one riding an open line, does not count against it and is never rate limited.","freeSamplePerHour":60,"bootstrapNodeMsPerHour":15000,"bootstrapNote":"15000ms of NODE WORK an hour, not a call count. Cheap reads — eth_chainId, eth_getCode, an eth_call — cost near nothing, so thousands fit. Only heavy scanning draws it down. The escrow's own log history is held here and served from memory, so the verification we ask you to run costs about 10ms of it rather than the four minutes of node work it used to. You are charged the work we actually did, after we do it, so there is always room for one more call.","paidCalls":"no quota and no rate limit, on a line or off one","everyLimit":{"scope":"per caller, where caller is the network address we see. There is no global ceiling, so the traffic of an unrelated caller cannot spend your allowance — but callers who reach us from the SAME address share one, which is what happens behind a corporate NAT, a proxy, or two agents in one datacentre. We would rather state that than have you discover it as a 429 on your first call.","counted":"only calls we SERVE. A refusal of ours, a cached answer and an upstream failure all leave your allowance untouched.","onRefusal":"HTTP 429 carries Retry-After; a refused MCP tool call carries retry_after_seconds."},"line":{"socket":"/pay","tickMs":250,"closesAfterIdleMs":5000,"servesWithoutATickForMs":5000,"open":"{op:\"open\",channelId} -> {op:\"opened\",credential,...}","pay":"call the `tick` tool with {line:\"<credential>\"} and x402 payment in params._meta","also":["{op:\"rotate\"}","{op:\"close\"}"],"serverSends":["opened","meter","rotated","closing","closed"]}},"rate":{"microUSDPerMillisecond":1,"lineClosesAfterIdleMs":5000,"servesWithoutATickForMs":5000,"microUSDPerSecond":1000,"microUSDPerHour":3600000,"maxIdleMicroUSD":5000,"deposit":{"forOneSecondMicroUSD":1000,"forOneHourMicroUSD":3600000,"tickQuoteMicroUSD":250,"topUpAtMicroUSD":60000,"note":"a tick is quoted at the minimum hold -- tickQuoteMicroUSD, the most one tick can bill, and the amount in tickAccepts. Your wallet funds a multiple of that quote and the multiple is YOUR client's policy: our bridge asks 400x, the scheme refuses below 3x. topUpAtMicroUSD is the collateral level at which a client should top up, not a price."},"withoutALine":{"minimumHoldMs":250,"microUSD":250,"note":"NOT a per-call price. A call with no line buys the minimum hold -- the smallest slice of time we can settle on chain -- and it is the same meter a line uses. Exactly the amount quoted in accepts. A held line bills wall-clock whether you call or not, so holding is cheaper only above one call per minimumHoldMs; below that, slices cost less."},"basis":"You buy TIME ON A LINE, not calls. Calls are free; you pay to hold the line open.\nrate        1 micro-USD per 1ms. A second is 1000; an hour of held line is 3600000 ($3.60), whatever the volume.\nopen        deposit once, then open a line on the socket at /pay. It returns a credential.\ntick        call `tick` on a steady cadence. Each one buys the ms since your previous tick.\ncalls       pass {line: \"<credential>\"}. Free: no signature, no ordering, any number in flight.\nmiss a tick  still served for 5000ms, room for your wallet to top up.\nclient note  5000ms is OUR ceiling, and our bridge does not use all of it: it drops\n             its own line after four tick intervals (1000ms) to stop your meter early\n             rather than let you pay for idle time we would otherwise bill. So with the\n             bridge a pause longer than 1000ms costs you a reopen, not 5000ms of\n             billing. Your own client chooses; 5000ms is the most we will ever hold it.\nstop        the line closes 5000ms after your last request. A forgotten line costs at most 5000 micro-USD.\nno line     a call with no line buys the MINIMUM HOLD: 250ms, which at this rate is\n            250 micro-USD, the amount in accepts. NOT a per-call price -- there is one\n            meter and it only measures time. The floor exists because a 1ms charge cannot be\n            settled on chain for less than it is worth.\n            A held line bills wall-clock whether you call or not, so holding is cheaper only\n            above one call per 250ms. Below that, slices cost less.\ntick quote  quoted at 250 micro-USD, the ceiling on one tick. Your client funds a multiple of it: ours asks 400x, the minimum is 3x.\nlimits      served while the line is paid up and while collateral remains. A voucher above your deposit is refused.\nexit        Take it yourself: initiateWithdraw then finalizeWithdraw after 900s.\n            Your gas, no help from us, and the contract gates it to you alone. THAT is the guarantee.\n            {op:\"refund\"} on an open line also works and costs you nothing, and we return unspent\n            collateral unasked once a channel goes quiet -- but neither is a deadline. Plan around\n            the withdrawal, which needs nothing from us and cannot be taken away."},"client":{"versions":{"@x402/core":"2.22.0","@x402/evm":"2.22.0","@x402/mcp":"2.22.0","@x402/express":"2.22.0","@modelcontextprotocol/sdk":"1.30.0","viem":"2.55.16"},"versionsNote":"the versions THIS server runs, read from its own installed packages. Match them if a payment is refused for a reason the terms do not explain — the scheme's contract constants are version-specific.","canBrowse":"any MCP client: tools/list and the free sample tool need no wallet","canPay":"only a client that constructs x402 payments into params._meta per call","stockClientCannotPay":true,"how":"wrap your client with wrapMCPClientWithPayment from @x402/mcp, or run a local bridge that holds the key and proxies your existing client","bridge":"npx -y https://www.zeamprism.com/x402-mcp-bridge-1.5.4.tgz","bridgeVersion":"1.5.4","bridgeCacheNote":"the version is in the filename on purpose: npm caches remote tarballs by URL, so an unversioned URL serves you whatever you cached first. If you pinned the old x402-mcp-bridge.tgz, clear it (npx --ignore-existing, or npm cache clean) and use this URL.","bridgeNote":"holds your key locally, proxies your existing MCP client, custodies nothing. Set X402_PRIVATE_KEY. It drives a line for you by default (X402_LINE=auto): opens one on your first call, holds it while calls keep coming, lets it lapse when they stop.","bridgeSource":"https://www.zeamprism.com/x402-mcp-bridge.mjs","bridgeTarball":"https://www.zeamprism.com/x402-mcp-bridge-1.5.4.tgz","bridgeRepo":"https://github.com/zeam-labs/x402-mcp-bridge","bridgeSha256":"e7d587b9377ed32d5a7ed36e3a6f04cf3737906c0857d565e86305e4874ac58e","bridgeVerify":"sha256sum the tarball and compare, or read the source and run it directly with node -- it needs no build step. The tarball is built with `npm pack` from bridgeRepo at the version in its package.json, so its index.mjs and README.md are byte-identical to that repo and to bridgeSource."},"settlement":{"contract":"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003","withdrawDelaySeconds":900,"collectors":{"erc3009DepositCollector":"0x4020806089470a89826cB9fB1f4059150b550004","permit2TokenCollector":"0x992476B9Ee81d52a5BdA0622C333938D0Af0aB26","note":"these are the two this scheme actually uses. @x402/evm exports others, including a separate permit2 DEPOSIT collector, which we do not use — do not assume the pair above is a matched set of deposit collectors."},"collectorsNote":"taken from the @x402/evm version this server runs; they are version-specific, so read them from here or from your own package rather than copying them.","permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","verify":"POST /bootstrap with eth_getCode or eth_call against these addresses -- free, no wallet","abi":"GET /abi.json","whoseContract":"not ZEAM's. x402's own batch-settlement escrow, hardcoded in @x402/evm and published to npm by Coinbase in 2.12.0 on 2026-05-13, two days before the contract existed on Base. No owner, no pause, no upgrade, no sweep.","whoseContractVerify":"npm pack @x402/evm@2.12.0, then grep the package for 0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003","source":"https://base.blockscout.com/address/0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003?tab=contract","upstream":"https://registry.npmjs.org/@x402/evm","linksNote":"chosen because they answer non-browser clients. basescan.org and www.npmjs.com 403 a bare HTTP client, which makes them useless as proof to an agent."},"assets":[{"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6,"fund":["eip3009","permit2"],"perRequestCeiling":"250","settlementsEverOnThisAsset":163,"proven":true},{"symbol":"USDT","address":"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2","decimals":6,"fund":["permit2"],"perRequestCeiling":"250","settlementsEverOnThisAsset":1,"proven":true},{"symbol":"DAI","address":"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb","decimals":18,"fund":["permit2"],"perRequestCeiling":"250000000000000","settlementsEverOnThisAsset":1,"proven":true},{"symbol":"EURC","address":"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42","decimals":6,"fund":["eip3009","permit2"],"perRequestCeiling":"215","settlementsEverOnThisAsset":1,"proven":true},{"symbol":"WETH","address":"0x4200000000000000000000000000000000000006","decimals":18,"fund":["permit2"],"perRequestCeiling":"100960037523","settlementsEverOnThisAsset":2,"proven":true}],"assetsNote":"settlementsEverOnThisAsset is counted from the escrow's own Settled events, which anyone can count too — /healthz/books reconciles them against our figures.","provenance":{"externalPayingCustomers":0,"note":"The settlement history at this receiver is our own testing, not customer traction. Nearly every payer wallet that has opened a channel here was funded by our own treasury, and every Settled event was submitted by our own receiverAuthorizer. Do not read the channel or settlement counts as adoption.","verify":"count it yourself — the payers are on chain. Take the channel-opening events at this payTo, list the distinct payer addresses, and look at what funded each one. You will find one treasury behind almost all of them.","answer":"/provenance — the payer list and what funded each one, free and without a wallet, with the exact queries to reproduce it yourself.","whyWeSayIt":"you would find this in ten minutes, and it is worth more said by us than found by you."},"assetsCountedAt":"2026-08-28T16:09:35.666Z","assetsCountNote":"these counts are a SNAPSHOT taken at assetsCountedAt, refreshed on a timer. /healthz/books recounts live, so if a settlement lands between the two you will see this manifest trail it by one. That is staleness, not disagreement — count the chain yourself and trust your own number over both.","accepts":[{"scheme":"batch-settlement","network":"eip155:8453","amount":"250","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"name":"USD Coin","version":"2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"250","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"250","asset":"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"250000000000000","asset":"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"215","asset":"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"name":"EURC","version":"2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"215","asset":"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"100960037523","asset":"0x4200000000000000000000000000000000000006","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}}],"tickAccepts":[{"scheme":"batch-settlement","network":"eip155:8453","amount":"250","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"name":"USD Coin","version":"2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"250","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"250","asset":"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"250000000000000","asset":"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"215","asset":"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"name":"EURC","version":"2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"215","asset":"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}},{"scheme":"batch-settlement","network":"eip155:8453","amount":"100960037523","asset":"0x4200000000000000000000000000000000000006","payTo":"0x0Cec1E92fa2b92a93194D40C1D38E989E3C0597c","maxTimeoutSeconds":30,"extra":{"assetTransferMethod":"permit2","receiverAuthorizer":"0x7116bf728132088d7819A93A980d002d8550bFc6","withdrawDelay":900}}],"payFirst":"accepts is the same array a 402 carries. Cache it, attach payment to your first call, and never send an unpaid request. Re-read this if a payment is refused as stale -- non-stable quotes move with the oracle.","validateBeforeSigning":{"field":"accepts[].extra.withdrawDelay","weQuote":900,"contractMinimum":900,"contractMaximum":2592000,"why":"this is the delay YOUR OWN unilateral withdrawal waits out, and you sign it into the immutable channel config. We cannot touch your collateral either way, but a larger number is a longer wait before you can take it back without our cooperation. We quote the minimum the contract allows; refuse anything larger than you are willing to wait."},"tickNote":"pay the `tick` tool against tickAccepts, not accepts. Its amount is the CEILING on one tick, not the price: we settle the milliseconds you actually held, and your wallet funds a multiple of the quote, which is what gives the line a usable runway.","endpoint":"https://mcp.zeamprism.com/mcp","documentation":"https://mcp.zeamprism.com/llms.txt"}