The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Vtimestamp Write listing page.
MCP server for creating vtimestamp proofs on the Verus blockchain.
Enables AI agents (Claude Desktop, VS Code, etc.) to create document timestamps on a VerusID — writing directly to the Verus blockchain via a local or remote daemon.
Looking for the read-only server? See vtimestamp-mcp — no daemon or wallet required.
verusd) running with:
Add to your claude_desktop_config.json:
That's it — the server auto-detects your RPC credentials from VRSC.conf (see Configuration below).
Add to your VS Code MCP settings:
The server automatically reads RPC credentials from your local VRSC.conf file. No manual configuration is needed for most users.
Auto-detected VRSC.conf paths:
~/Library/Application Support/Komodo/VRSC/VRSC.conf~/.komodo/VRSC/VRSC.conf%AppData%\Roaming\Komodo\VRSC\VRSC.confAll optional — only needed for non-standard setups or remote daemons.
| Variable | Description |
|---|---|
VERUS_CONF_PATH | Custom path to VRSC.conf |
VERUS_RPC_URL | Override: daemon RPC URL (for remote daemons) |
VERUS_RPC_USER | Override: RPC username (for remote daemons) |
VERUS_RPC_PASSWORD | Override: RPC password (for remote daemons) |
vtimestamp_createCreate a new timestamp on a VerusID. Provide either a file path or text — the server computes the SHA-256 hash automatically.
| Parameter | Type | Required | Description |
|---|---|---|---|
identity | string | Yes | VerusID name (e.g., alice@) |
file_path | string | One of | Path to a file to hash and timestamp |
text | string | One of | Text to hash and timestamp (e.g., an attestation or report) |
title | string | Yes | Title for the timestamp |
description | string | No | Description of the content |
filename | string | No | Original filename (auto-detected when using file_path) |
filesize | number | No | File size in bytes (auto-detected when using file_path) |
sourceoffunds | string | No | Funding address (R-address, z-address, or ID@) |
feeoffer | number | No | Fee offer in VRSC (default: 0.0001) |
Either file_path or text must be provided (mutually exclusive).
Example prompts:
Success response:
Error cases:
InvalidParams errorThe server connects to your Verus daemon (local or remote) to create on-chain timestamps. The daemon must have the identity's private key in its wallet to sign the updateidentity transaction.
As of v1.2.0, this server writes timestamps as public-encrypted entries under the VerusID's contentmultimap. Each timestamp produces a single entry under the proof.basic outer key (iJvkQ3uTKmRoFiE3rtP8YJxryLBKu8enmX) using the daemon's {data: {...}} envelope shorthand. The daemon expands that to an on-chain DataDescriptor with flags: 13 (HAS_OBJECTDATA | ENCRYPTED | HAS_IVK) — ciphertext in objectdata, plus published epk and ivk fields.
The metadata (sha256, title, description, filename, filesize) is JSON-stringified into a single message before encryption, so one decrypt call recovers all fields. Because the IVK is published on-chain (public-encrypted mode), anyone can decrypt these entries — no key sharing or wallet access is required for readers. See vtimestamp-mcp for the read side.
What this means for inspection:
getidentity, getidentityhistory, getidentitycontent) returns the ciphertext descriptor, not readable strings.decryptdata call passing the descriptor + the originating txid + retrieve: true. The daemon stores ciphertext as an indirect reference back to the writing transaction — the txid is part of the decrypt input.decryptdata whitelisted.Legacy entries continue to work. Timestamps written by 1.1.x and earlier (plaintext per-field DataDescriptors with flags: 0) remain on-chain forever (cmm is append-only), and vtimestamp-mcp@1.2.0+ reads both shapes transparently.
For background, see How to Publish Encrypted Data on an Identity.
The simplest setup — verusd runs on the same machine as the MCP server. No configuration needed — credentials are auto-detected from VRSC.conf.
You can point the MCP server at a verusd instance running on another machine (e.g., a VPS). The daemon needs two config changes in its VRSC.conf:
rpcallowip=<your-ip> (the daemon only accepts localhost by default)Then set the env var overrides (VERUS_RPC_URL, VERUS_RPC_USER, VERUS_RPC_PASSWORD) in your MCP config.
Important: RPC credentials are sent over plain HTTP. If connecting over the open internet (not a local network), use an SSH tunnel to secure the connection:
Then use VERUS_RPC_URL=http://127.0.0.1:27486 as if it were local — the tunnel handles the rest.
VRSC.conf to auto-detect RPC credentials — no secrets are copied or stored elsewheresourceoffunds parameter can be used to control which address pays feesMIT