
Vtimestamp
io.github.vdappdev2Published by GitHub account vdappdev2v1.0.1Updated Oct 24, 2026
MCP server for verifying and querying vtimestamp proofs on the Verus blockchain
Overview
A local MCP server that lets an assistant verify whether a file or text was timestamped on a Verus blockchain identity and list an identity's timestamps.
- What you can do
- Verify a file or text against a VerusID: computes the SHA-256 hash and checks it against the on-chain record, given an identity plus either a file path or text string (mutually exclusive). List all timestamps recorded on a given VerusID, including mixed legacy plaintext and public-encrypted entries. Describe the vtimestamp service itself with a no-parameter info tool.
- When to use it
- Useful when you need to prove or check that a document or piece of text existed at a certain time on the Verus blockchain, or to review what an identity has timestamped. It is read-only, so it fits auditing and verification workflows rather than writing new timestamps.
- Requirements
- Node.js 18 or later; runs locally over stdio via npx. By default it needs no wallet, API keys or authentication and queries a public Verus mainnet RPC endpoint over HTTPS. Optional environment variables (VERUS_RPC_URL, VERUS_CONF_PATH, VERUS_RPC_USER, VERUS_RPC_PASSWORD) switch it to a local daemon, which is required for testnet encrypted reads.
Installation
In SourceWeft
- Open Vtimestamp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
vtimestamp-mcp
MCP server for verifying and querying vtimestamp proofs on the Verus blockchain.
Enables AI agents (Claude Desktop, VS Code, etc.) to verify document timestamps and list all timestamps on a VerusID — directly from the blockchain.
Looking for the write server? See vtimestamp-mcp-write — needs a local daemon and a wallet with the identity's private key.
Installation
Claude Code
Claude Desktop
Add to your claude_desktop_config.json:
Using yarn:
Using pnpm:
VS Code
Add to your VS Code MCP settings:
Tools
vtimestamp_verify
Verify whether a file or text has been timestamped on a VerusID. Provide either a file path or text — the server computes the SHA-256 hash and checks it against the on-chain record.
Either file_path or text must be provided (mutually exclusive).
Example prompts:
- "Check if the file at /path/to/report.pdf has been timestamped on alice@"
- "Verify this text was timestamped on bob@: I attest that invoice #4521 was approved"
vtimestamp_list
List all timestamps recorded on a VerusID.
Example: "What documents has alice@ timestamped?"
vtimestamp_info
Get information about the vtimestamp service.
No parameters.
Example: "What is vtimestamp?"
How It Works
By default, the server queries a public Verus mainnet RPC endpoint. No wallet, no API keys, no authentication required.
You can also point this server at your own daemon — useful for testnet (where no public RPC supports decryption), high-volume agents, custom chains, or anyone who'd rather not have their inspections hit a public RPC. See Configuration below.
On-chain storage shape
vtimestamps are stored under a VerusID's contentmultimap and read via getidentityhistory (one history entry per updateidentity). This server handles two on-chain shapes transparently:
- Public-encrypted (
flags: 13, written by[email protected]+) — the daemon's{data:{}}envelope produces a single ciphertext DataDescriptor withepkandivkpublished on-chain. Reading these requiresdecryptdata+ the originating txid +retrieve: true. Because the IVK is on-chain (public-encrypted mode), anyone can decrypt — no key sharing. - Legacy plaintext (
flags: 0, written by[email protected]and earlier) — per-field DataDescriptors (sha256, title, description, filename, filesize) under labeled keys. Read directly withoutdecryptdata.
The reader branches on each entry's flags. Mixed identities (legacy entries from older writes alongside new encrypted entries) are handled correctly — both surface in vtimestamp_list output.
For background, see How to Publish Encrypted Data on an Identity.
Public RPC requirement
decryptdata is a daemon RPC method that public Verus RPCs do not all whitelist. As of writing:
If syncproof is unreachable and the call falls back to api.verus.services, encrypted entries will gracefully surface as un-decryptable rather than crashing.
Configuration
For default public-RPC use, no configuration is needed. To point the server at your own daemon (required for testnet, recommended for high-volume use), set environment variables.
Environment Variables
All optional. Setting any of these switches the server from public-RPC mode to local-daemon mode.
Behavior:
- (no env vars) → public RPC pair (
rpc.vrsc.syncproof.netprimary,api.verus.servicesfallback). Mainnet only. VERUS_RPC_URLset → single local endpoint at that URL. Auth fromVERUS_RPC_USER+VERUS_RPC_PASSWORD, or auto-derived fromVERUS_CONF_PATHif those are missing.VERUS_CONF_PATHset (withoutVERUS_RPC_URL) → URL =http://127.0.0.1:<rpcport>from the conf, with credentials from the conf.
Local daemon example (testnet)
Or pin everything explicitly:
Requirements
- Node.js 18+
- For default operation: nothing else — uses public mainnet RPC.
- For testnet or local-daemon mode: a running
verusd(orverusd -chain=vrsctest) on the host you point at.
License
MIT
Source: README.md at commit bbe4785
Tools
0Version history
1- v1.0.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts