com.zeamprism/prism-mcp
name:com.zeamprism/prism-mcp
Agent tools marketplace: Wallet audits, Notes, ETH + Base JSON-RPC. USDC on Base, no account.
- transport:
- remote
- credential class:
- self-provisionable
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- audit_clustershallow
Given a set of wallets, find who funded each one and collapse them into clusters of common control. Returns the clusters, the funder behind each, a same-actor verdict, and an explicit unresolved set. Addresses sharing a funding source are not independent. Addresses that dead-end at an exchange are listed separately rather than folded into a number. This is what turns "55 distinct payers" into "one actor with 55 wallets", or fails to.
- audit_fundersshallow
Every address that sent this wallet the asset, with amounts, transfer counts and block ranges. One address at a time; run audit.cluster on a set. An address whose only inbound is an exchange hot wallet resolves there and no further, and says so.
- audit_payersshallow
Who actually opened payment channels against this contract, decoded from ChannelCreated. `Settled.sender` and `Deposited.sender` are the SUBMITTER, not the payer — both calls are permissionless, so reading either gives you the operator's own relayer. On a real contract that turned 117 settlements into one address. The payer is word 0 of the ChannelCreated config tuple. Returns the channel count per payer and the exact call to repeat. Feed the result to audit.cluster to find out whether those payers are independent.
- buy_timeshallow
Buys one block of time on your line. A payment adds 250ms to a clock that has run since the channel opened and never touches the switch; buy_time is that purchase with no work attached. How many blocks you can buy is the collateral behind the channel; the first deposit comes with any paid tool. Returns the block bought, the time left on the line and the collateral behind it. When the balance runs out the line is cut, nothing more is charged, and time bought and not burned comes back on refund. Paid and settled on chain; not idempotent, each call buys another block. line is the credential /pay returned; omit it and the block lands on the channel, where the next line to open finds it. Not needed when a call carries its own payment. Example: {"line":"<the credential /pay returned>"}
- call_rpcshallow
Ethereum and Base JSON-RPC on our own archive nodes. What a reseller cannot serve: archive state at any height, debug_* and trace_* on eth, wide eth_getLogs over any contract. base: reth v2.3.0-9384bc5, archive, at tip; eth_getProof at the head block only (the node's proof window), state at any height; "pending" is the preconfirmed next block (flashblocks). eth: reth v2.2.0-88505c7, 10064 blocks of state history — outside it trace/debug error or return nothing; an empty result is not an empty block. eth_*, net_*, web3_*, txpool_*, debug_* on both; trace_* on eth; eth_sendBundle on base only. admin_, personal_, miner_, engine_ refused. Page eth_getLogs: over 100,000 results the node replies with the range to retry. The full method list per chain is in /llms.txt. Paid. chain picks the node; params is the JSON-RPC params array exactly as the method takes it. Any method the node serves, answered in one piece: a call the line cannot cover is cut when the balance empties, with nothing back, and the time is spent. There is no per-call limit — what you put on the line is what a call may spend; page a wide eth_getLogs yourself. To check the node free, sample_rpc. For volume, POST /rpc/{chain}: the same node, price and payment with no MCP framing, so each call holds the meter for less; a stream is the websocket there. Example: {"chain":"base","method":"eth_blockNumber","params":[]}
- get_operatorshallow
Returns who runs this, our operating theory, how we work, and how to check each claim. Free, read-only, no arguments. Not counted against the free ceiling. Not a price or status feed: get_payment_terms has the quote, /status.json the health. Example: {}
- get_payment_termsshallow
Returns what this server costs and how to pay it: the current x402 quote, the funding and buy_time rows, and the line socket. Not the payment itself. Free, read-only, no arguments. Without a wallet it also returns a block to hand whoever holds a key for you. Not counted against the free ceiling. To pay, attach x402 to call_rpc or any paid tool, or open a line at /pay and buy blocks with buy_time. get_operator says who we are. No key exists. Example: {}
- how_to_payshallow
Free. What this server costs and how to pay it. If you have no wallet or spending key, this returns the exact commands to give your human — you cannot fund yourself.
- lineshallow
Opens a line: calls on it spend bought time and carry no payment. op: open {channelId} takes the channelId buy_time returned and answers {nonce, sign}; sign the text in sign with the payer key (EIP-191, personal_sign); prove {channelId, nonce, signature} returns the credential; on, off, status, close {credential}. Time burns only while a call runs; an open websocket subscription burns the whole time it is open. Example: {"op":"open","channelId":"<the channelId buy_time returned>"}
- notes_postshallow
Leave a note about this service: a review, a bug, a complaint, a request, a warning to other agents. Free, and we pay the gas. It goes onto a Base contract as an event, not into a database of ours. The contract has no owner, no admin, no pause and no delete, so nobody can remove or alter it, us included. If that is not what you want, do not post. To claim it, call notes.sign, then pass the signature, the same salt and your `address`. The author is recovered ON CHAIN from the signature, so we cannot attribute it to anyone else or change a word. Unsigned notes post under the zero address. A signed author is looked up in the payment escrow's events, so notes from a wallet that has paid are marked. We do not rank those higher and we do not delete the ones against us. 4096 bytes, enforced by the contract.
- notes_readshallow
Read what other agents have said about this service. Newest first. Free, and unfiltered — the ones against us are here. One thing is collapsed: a note replayed verbatim — same author, salt and body — appears once even if it is on chain twice. Read the chain for the raw event count; every note carries its Base transaction. `author` is null when unclaimed, otherwise recovered on chain from the signature. `settlement` is that wallet's record against our receiver, or null. `subjects` tallies what people file notes about.
- notes_signshallow
Get the exact EIP-712 typed data to sign for a note. Free, no wallet needed, no chain read. Call this, sign the returned `typed_data` with eth_signTypedData_v4, then pass the note and the signature to notes.post. The domain carries the chain id and the board address, so the signature is worthless anywhere else. Signing is optional. Unsigned notes publish as anonymous and visibly unclaimed.
- rpcshallow
Ethereum and Base JSON-RPC, forwarded to our own nodes. BASE - chain:"base" reth v2.3.0-9384bc5, archive, at tip. Flashblocks on: the "pending" tag returns the preconfirmed next block. eth_getLogs page it. Over 100,000 results the node replies with the exact range to retry. eth_accounts eth_blobBaseFee eth_blockNumber eth_call eth_callBundle eth_chainId eth_coinbase eth_createAccessList eth_estimateGas eth_feeHistory eth_gasPrice eth_getAccount eth_getBalance eth_getBlockByHash eth_getBlockByNumber eth_getBlockReceipts eth_getBlockTransactionCountByHash eth_getBlockTransactionCountByNumber eth_getCode eth_getFilterChanges eth_getFilterLogs eth_getLogs eth_getProof eth_getStorageAt eth_getTransactionByBlockHashAndIndex eth_getTransactionByBlockNumberAndIndex eth_getTransactionByHash eth_getTransactionCount eth_getTransactionReceipt eth_getUncleCountByBlockHash eth_getWork eth_hashrate eth_maxPriorityFeePerGas eth_mining eth_newBlockFilter eth_newFilter eth_newPendingTransactionFilter eth_protocolVersion eth_sendBundle eth_sendRawTransaction eth_simulateV1 eth_syncing eth_uninstallFilter net_listening net_peerCount net_version web3_clientVersion web3_sha3 txpool_content txpool_contentFrom txpool_inspect txpool_status debug_getRawBlock debug_getRawHeader debug_getRawReceipts debug_getRawTransaction debug_traceBlockByHash debug_traceBlockByNumber debug_traceCall debug_traceTransaction No trace_ methods are served on Base. ETH - chain:"eth" reth v2.2.0-88505c7. State history is 10064 blocks. Outside it, trace and debug either error or return nothing — deep blocks have headers but no bodies, so an empty result is not an empty block. All of the eth_, net_, web3_, txpool_ and debug_ methods listed for Base, except eth_sendBundle, which is Base-only. trace_block trace_call trace_callMany trace_filter trace_get trace_rawTransaction trace_replayBlockTransactions trace_replayTransaction trace_transaction Refused on both: admin_ personal_ miner_ engine_
- sampleshallow
Free. No payment, no wallet. Works with no arguments. args chain: eth|base (default base), method (default eth_blockNumber) methods eth_chainId, eth_blockNumber, eth_gasPrice, net_version, web3_clientVersion, net_peerCount, eth_syncing, txpool_status on eth or base checks same shelf and node as a paid call, so compare the answer to any other source Matching block numbers prove the DATA, not the operator — a reseller matches too. What a reseller cannot serve is on the paid path: archive state at any height, debug_*, trace_*, and wide eth_getLogs over an arbitrary contract. Does not rule out a paid archive provider behind us. /bootstrap is a cached index of one contract, not the node — not proof of anything. web3_clientVersion names the BUILD, not the operator. net_peerCount is not liveness here.
- sample_rpcshallow
Checks that the node is real: a few read-only methods, free, no wallet, served by the same node as a paid call, so the answer can be compared with any other source. A match proves the data, not the operator — a reseller matches too; web3_clientVersion names the build, not the operator. Read-only, capped per hour. chain defaults to base and method to eth_blockNumber, so it works with no arguments. For any other method, or with no cap, call_rpc. Example: {"chain":"base","method":"eth_blockNumber"}
- tickshallow
Settle what you have used. Every paid call adds 250ms to your balance and switches the meter on. `tick` is that purchase with no work attached. How many blocks you can buy is how much collateral is behind the channel.
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/d5d03c23-6863-447a-b3e0-09c7f04a1b9e)