Privi Anchor

io.github.canoydario847-cloudPublished by GitHub account canoydario847-cloudv0.4.2Updated Oct 29, 2026

Hash anchoring and proof-of-existence on chain for AI agents and apps. Free with an API key.

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Privi Anchor lets an assistant hash content and anchor those hashes on the Base blockchain, returning verifiable timestamped proof of existence.

What you can do
  • Check the anchor chain, signing wallet, gas balance and totals
  • Hash text locally with SHA-256, with nothing stored
  • Anchor 1 to 100 hashes in one transaction and get a receipt per hash
  • Verify on chain that a hash was anchored, by whom and when, using only chain data when a receipt is supplied
When to use it
Useful when you need a tamper-evident, timestamped record that a document, dataset, model card, contract or AI output existed at a given time, and want anyone to be able to check it against the chain rather than trusting the service.
Requirements
Remote MCP endpoint over streamable HTTP; no local install. The anchoring tool needs an API key sent as an Authorization Bearer header, obtained from the provider. Verification and hashing tools are free and need no key.
Before you install
Anchoring writes a public, permanent transaction to Base, so hashes and timing become publicly visible and cannot be removed; only hashes are sent, never the content. The anchoring tool requires an API key, is rate-limited and subject to a daily transaction budget. The service pays gas from a hot wallet, so availability depends on that wallet's balance.

Installation

In SourceWeft

  1. Open Privi Anchor in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.canoydario847-cloud%2Fprivi-anchor/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "privi-anchor": {
      "type": "http",
      "url": "https://privi-anchor.onrender.com/mcp"
    }
  }
}

README

Privi Anchor MCP

Timestamped proof that data existed, on chain. Any AI agent can fingerprint what it produced or relied on (a report, generated image, dataset, contract, model card, audit-log head) and anchor that fingerprint on chain. Anyone can later prove the exact content existed at that time and hasn't changed, by checking the chain itself rather than trusting Privi.

Works with Claude, ChatGPT, Cursor, VS Code and custom agents. Part of the Privi suite with Privi Verify and Privi Ledger.

Live: https://privi-anchor.onrender.com/mcp, anchoring on Base (chain ID 8453) until the Privi chain mainnet launches, then it moves there. Anchors made earlier on the Privi EVM Devnet (chain 262144) stay recorded. anchor_verify reports them as devnet anchors instead of failing them, and you can re-anchor any hash to get a Base receipt.

Tools

ToolAccessWhat it does
anchor_statusfreeChain, anchor wallet, gas balance, totals
anchor_hash_textfreeSHA-256 of text, ready to anchor
anchor_verifyfreeProves on chain that a hash was anchored, by whom and when. With a receipt's tx_hash + proof, uses chain data only
anchor_hashesAPI keyAnchors 1-100 hashes in one transaction; returns a receipt per hash

Only hashes go on chain, never content.

How it works

  1. The hashes in a call become leaves of a SHA-256 Merkle tree (node = sha256(min(a,b) || max(a,b))).
  2. One zero-value transaction from the anchor wallet to itself carries the root in its data: 0x50525641 ("PRVA") + 0x01 + 32-byte root. No contract is needed.
  3. Each hash gets a receipt: the transaction hash and its Merkle proof.
  4. To verify, read the transaction from any Base RPC node (or basescan.org), take the root from its data, and recompute it from the hash and proof. The block's timestamp is the proof of when.

Independent check in a few lines:

python
import hashlibdef node(a, b): return hashlib.sha256(min(a, b) + max(a, b)).digest()x = bytes.fromhex(my_hash)for sib in proof: x = node(x, bytes.fromhex(sib))assert x.hex() == tx_input[12:]   # strip "0x" + "50525641" + "01"

Access

anchor_hashes needs Authorization: Bearer <key> with a key from ANCHOR_API_KEYS and is rate-limited per key. It's free with a key. Each call is one Base transaction (a fraction of a cent of gas, paid by the anchor wallet), so the server also enforces a daily budget (ANCHOR_MAX_TX_PER_DAY, default 500). Batch up to 100 hashes per call.

Run, test, deploy

bash
pip install -e ".[dev]"cp .env.example .env     # set ANCHOR_PRIVATE_KEY and ANCHOR_API_KEYSpytestprivi-anchor-mcp         # HTTP :8000, MCP at /mcp

The anchor wallet is a hot key. Keep only a little ETH on Base in it for gas (about $5 lasts weeks at the default budget). /status shows its balance and gas_ok.

Public explorer feed

For Privi Explorer (CORS open, free): GET /anchors/recent?limit&before lists anchor batches newest first (Merkle root, transaction, block, hash count; never the label or the client), and GET /anchors/verify/<sha256> runs the same on-chain check as anchor_verify for one hash.

License

MIT © 2026 Dario Canoy, Privi World Co

Source: anchor-server/README.md at commit ba19d8b

Tools

4

anchor_status

Anchor status

Which chain anchors go to, the service wallet that signs them, its gas balance, and totals.

Takes no parameters.

anchor_hash_text

Hash text

SHA-256 of a piece of text, ready to pass to anchor_hashes. Hashing happens here; nothing is stored.

Parameterstextrequired

anchor_verify

Verify an anchor

Check on the blockchain that a hash was anchored, by whom and when. Free. With tx_hash and proof from a receipt, the check uses only chain data.

Parametershashrequiredprooftx_hash

anchor_hashes

Anchor hashes

Anchor up to 100 hashes on chain (Base until the Privi chain mainnet) in one transaction. Returns, for each hash, a receipt (tx_hash, Merkle proof, block, time) that anyone can check with anchor_verify. Requires an API key (Authorization: Bearer).

Parameterslabelhashesrequired

Version history

2
  1. v0.4.2LatestOct 29, 2026
  2. v0.1.0Oct 20, 2026

Score

90% 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 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.