New MCP Connects Your AI Agents With Verus PBaaS
vdappdev28 min read·Just now--
verusidx-mcp gives AI agents 49 MCP tools across 7 servers for interacting with Verus. All communication is local: stdio from client to MCP server, JSON-RPC from MCP server to your verusd daemon.
MCP (Model Context Protocol) is an open standard that lets AI agents call external tools. An MCP server exposes tools — an MCP client (Claude Code, Cursor, or any compatible agent) discovers and calls them.
Architecture
The foundation server (chain-mcp) discovers running daemons and writes a local registry. All other servers read it — no shared memory, no IPC. Every tool takes a chain parameter so the agent always specifies which chain to operate on. Write tools can be disabled per-server with VERUSIDX_READ_ONLY=true — in which case the tools aren’t just blocked, they're not even registered. Spending limits cap per-transaction amounts before the RPC reaches the daemon. Every write operation is logged to append-only audit files.
At a Glance
- @verusidx/chain-mcp (11 tools) — Foundation: chain discovery, daemon lifecycle, currency lookup
- @verusidx/identity-mcp (11 tools) — VerusID lifecycle: register, update, revoke, recover
- @verusidx/send-mcp (8 tools) — Send, convert, and transfer currency
- @verusidx/data-mcp (7 tools) — On-chain data, encryption, signing, verification
- @verusidx/address-mcp (6 tools) — Address generation, validation, listing
- @verusidx/marketplace-mcp (5 tools) — Atomic swap offers and trades
- @verusidx/definecurrency-mcp (1 tool) — Currency creation
@verusidx/chain-mcp — Foundation
The required server. Discovers running daemons, manages the chain registry, and provides chain-level queries that all other servers depend on.
Read-only tools:
- getinfo — Returns blockchain and node info: version, block height, connections, sync status. Use it to check if a daemon is running and synced before other operations.
- getwalletinfo — Returns wallet state: confirmed and unconfirmed balances (native + reserve currencies), transaction count, key pool status.
- help — Returns daemon documentation for any RPC command. With no argument, lists all available RPCs by category. With a command name, returns detailed usage, parameters, and examples.
- getblockcount — Returns the current block height. The most lightweight way to poll chain progress.
- getcurrency — Returns the full definition and current state of a currency: reserves, weights, fees, supply, and conversion prices. Use this before performing conversions or registering identities to check fees.
- status — Checks registry freshness and daemon reachability. Without a chain parameter, returns an overview of all registered chains. With one, returns detailed health for that specific chain.
- refresh_chains — Re-scans for running daemons and rewrites the chain registry. Call this after starting or stopping a daemon so other servers see the updated state.
PBaaS: Verus PBaaS (Public Blockchains as a Service) lets anyone launch independent blockchains that interoperate through protocol-level bridges.
refresh_chainsdiscovers PBaaS chains automatically by resolving hex-encoded folder names to friendly names via the root chain.
Write tools:
- verusd — Starts a Verus daemon instance as a detached process. Verifies launch via
getinfoand reports the PID. - stop — Shuts down a running daemon. This terminates the process entirely — all connected clients lose connectivity.
- sendrawtransaction — Broadcasts a signed raw transaction to the network. The companion to
definecurrency, which returns hex that must be broadcast here. - signrawtransaction — Signs inputs of a raw transaction with wallet keys or explicitly provided private keys. Used for multisig workflows where multiple parties sign sequentially.
@verusidx/identity-mcp — VerusID Lifecycle
Creates, queries, and manages VerusIDs — the full lifecycle from registration through revocation and recovery.
VerusID is a protocol-level self-sovereign identity on Verus. Unlike token-based or smart-contract-based identities, VerusIDs are consensus primitives with on-chain key management, revocation, recovery, and structured data storage built into the protocol.
Read-only tools:
- getidentity — Looks up a VerusID by name or i-address. Returns current state: primary addresses, signing authorities, content data, revocation/recovery authorities, and whether this wallet can spend or sign for it.
- getidentitycontent — Returns cumulative identity content filtered by VDXF key and/or block height range. Use this to read structured data stored on an identity without processing the full revision history.
- getidentityhistory — Returns per-revision snapshots of a VerusID — one entry per update transaction. Use this to audit changes over time: address transfers, authority changes, content updates.
- getvdxfid — Converts a human-readable VDXF URI (e.g.,
vrsc::system.currency.export) into its on-chain i-address. Supports binding with additional data for derived keys. - listidentities — Lists VerusIDs in the local wallet: identities this wallet can spend for, sign for, or watch.
VDXF (Verus Data Exchange Format) is a namespaced URI system for structured on-chain data. Think of it as DNS for data keys —
vrsc::identity.profile.nameresolves to a deterministic i-address used as a key in the identity's contentmultimap, a structured key-value store on every VerusID.
Write tools:
- registernamecommitment — Step 1 of identity registration. Creates a name commitment that reserves the name without revealing it, preventing front-running. Commitment data is saved to disk and persists across sessions until registered.
- registeridentity — Step 2 of identity registration. Uses the confirmed commitment to register the identity on-chain. Reads the commitment from disk automatically.
- updateidentity — Updates any mutable field on an identity: primary addresses, content, authorities, private address. Pass the full identity definition with changes — omitted fields revert to defaults.
- revokeidentity — Revokes an identity, disabling spending and signing. Only the revocation authority or the ID’s control token can perform this. A safety mechanism for key compromise.
- recoveridentity — Recovers a revoked or compromised identity. Only the recovery authority or the ID’s control token can perform this. Typically used to set new primary addresses after a compromise.
- setidentitytimelock — Sets or modifies a timelock on a VerusID. Two modes:
setunlockdelayfor a block-count delay, orunlockatblockfor an absolute height. Restricts spending until the condition is met.
@verusidx/send-mcp — Currency Operations
All value movement: sending, converting, cross-chain transfers, and balance queries.
Read-only tools:
- getcurrencybalance — Returns multi-currency balances for any address, identity, or wildcard. Shows all currency holdings including native and reserve/token currencies.
- getcurrencyconverters — Finds fractional baskets that can convert between specified currencies. Reserves must contain 1000 VRSC to be returned with this RPC (see
listcurrencies). Returns matching baskets with their current reserve state and conversion prices. - estimateconversion — Previews conversion output before committing, accounting for pending conversions, fees, and slippage. Read-only — does not broadcast.
- listcurrencies — Lists and searches registered currencies. Supports filtering by launch state, system type, source system, and converter reserves. Use
converterparam to find all baskets regardless of reserve size. - z_getoperationstatus — Checks the status of async operations. A companion to
sendcurrency— poll with the operation ID to get the resulting transaction ID. - gettransaction — Returns detailed information about a wallet transaction: amounts, confirmations, block info, and reserve transfer details for conversions.
- listtransactions — Lists recent wallet transactions with pagination. Includes multi-currency details, conversion data, and cross-chain import info.
Fractional baskets are protocol-level multi-reserve currencies. Think of them as on-chain AMMs without smart contracts — conversion prices are set by reserve ratios, and conversions happen at the consensus layer.
getcurrencyconvertersorlistcurrenciesfinds baskets,estimateconversionpreviews the output, andsendcurrencyexecutes it.
Write tools:
- sendcurrency — The primary tool for moving value. Supports simple transparent or private sends, currency conversions through fractional baskets, cross-chain transfers, identity/currency exports, minting, burning, and on-chain data storage. Returns an async operation ID — poll
z_getoperationstatusfor the result.
@verusidx/data-mcp — On-Chain Data
Retrieval, decryption, signing, and verification. Completes the data pipeline that starts with sendcurrency:data in send-mcp.
Sapling z-addresses (prefixed
zs1...) use zero-knowledge proofs for private transactions. Amount, sender, and recipient are all shielded on-chain. Data encrypted to a z-address is decryptable only by the holder of its viewing key.
Read-only tools:
- z_listreceivedbyaddress — Lists transactions and data received at a shielded address. Data transactions appear with
amount: 0and a structured memo containing the data descriptor. The first step of the data retrieval pipeline. - decryptdata — Decrypts data stored on-chain. Takes a data descriptor (from
z_listreceivedbyaddress), a viewing key, and optionally a transaction ID. Can also query and decrypt identity content directly via theiddataparameter. - z_exportviewingkey — Exports the extended viewing key for a shielded address. Grants read-only decryption access without spending authority. Share it to let others decrypt data at that address.
- z_viewtransaction — Returns detailed shielded transaction info: spends, outputs, addresses, amounts, memos, and indices. Useful for inspecting data-carrying transactions.
- signdata — Signs data with a VerusID or transparent address. Supports messages, files, hex, base64, pre-computed hashes, and VDXF-structured objects. Can build Merkle Mountain Range (MMR) proofs over multiple items and encrypt to z-addresses for selective disclosure.
- verifysignature — Verifies a signature from
signdata. Checks against the identity's keys at the signing height or current keys. Returnsverifiedorinvalid.
Write tools:
- z_importviewingkey — Imports a viewing key to enable decryption of data encrypted to another z-address. Grants read-only access without spending authority.
@verusidx/address-mcp — Address Management
Generates, validates, and lists both transparent and shielded addresses.
Read-only tools:
- validateaddress — Validates a transparent address (R-address or i-address). Returns validity, wallet ownership, and metadata. Use this to verify addresses before sending funds or registering IDs.
- z_validateaddress — Validates a shielded Sapling z-address. Returns validity, wallet ownership, address type, and key components.
- getaddressesbyaccount — Lists all transparent addresses in the wallet.
- z_listaddresses — Lists all shielded Sapling addresses in the wallet.
Write tools:
- getnewaddress — Generates a new transparent R-address from the wallet’s keypool. Use for identity primary addresses, change addresses, or destination addresses.
- z_getnewaddress — Generates a new shielded Sapling address. Use for identity private address, private transactions, and data operations.
@verusidx/marketplace-mcp — Atomic Swaps
Fully decentralized on-chain trading. No intermediary, no escrow — both sides swap atomically or neither does.
Read-only tools:
- getoffers — Returns all open offers for a specific currency or identity. Shows both buy and sell sides. Use this to discover what’s available on the market, and get the txid used in
takeoffer. - listopenoffers — Lists open offers from the current wallet. Filters by expired/unexpired status.
Write tools:
- makeoffer — Creates an on-chain atomic swap offer. Locks the offered asset until taken, expired, or closed. Supports all four combinations: currency-for-currency, currency-for-identity, identity-for-currency, and identity-for-identity.
- takeoffer — Accepts an existing offer. Both sides exchange in a single transaction, or neither does.
- closeoffers — Closes/cancels open offers and reclaims locked funds. Automatically closes expired offers when called without parameters.
@verusidx/definecurrency-mcp — Currency Creation
One tool, many currency types.
Write tools:
- definecurrency — Defines a new currency on the blockchain. Supports simple tokens, fractional basket currencies, decentralized or centralized, ID control tokens, and Ethereum ERC-20 mapped tokens. Returns a signed transaction hex — broadcast via
sendrawtransactionin chain-mcp.
Get Started
49 tools across 7 servers — from chain health checks to currency creation, identity management and defi without malicious MEV.
Try it: Add chain-mcp to your MCP client config and tell your agent to call refresh_chains:
{
"mcpServers": {
"verusidx-chain": {
"command": "npx",
"args": ["-y", "@verusidx/chain-mcp"]
}
}
}Join Verus Discord and request testnet coins (in “pbaas-development” channel)
Source: github.com/vdappdev2/verusidx-mcp
Packages: All 7 servers on npm under @verusidx
verusidx-mcp v0.1.5–7 servers, 49 tools, zero cloud dependencies. Works with Claude Code, Cursor, and any MCP-compatible client.