Odel
markovian protocol

markovian protocol

@markovianprotocolPythonApache-2.0Updated 2mo ago

Stamp any data to the Markovian chain for a verifiable provenance receipt. Proves timing, not truth.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Markovian Protocol

A provenance and trust layer for autonomous agents. The Markovian Protocol turns any agent output into a timestamped, chain-recorded, independently verifiable record. It proves that data was committed at a point in time. It does not claim the data is correct. Provenance, not truth.

COMMIT

COMMIT is the entrance. It is a content-agnostic stamp: an agent sends a hash, the protocol writes a Merkle root plus a BN128 Pedersen commitment to the chain, and returns a receipt that anyone can verify with no account and without trusting the issuer.

The canonical record is the same object everywhere, markovian-provenance/v1:

{
  "schema": "markovian-provenance/v1",
  "merkle_root": "<sha256(data_hash:salt:wallet)>",
  "data_hash": "<sha256 of the committed data>",
  "wallet": "<stamper wallet>",
  "zk_commitment": "<BN128 Pedersen point>",
  "block_height": 0,
  "stamped_at": "<timestamp>",
  "verify": "https://api.quantsynth.net/verify/<merkle_root>",
  "attestation": "provenance-only; proves data was committed at this time, not that it is correct"
}

Doors

One commit, many envelopes. The same record plugs into the standards agents already use.

StandardStatusHow it plugs in
W3C Verifiable CredentialsLiveThe record becomes the credentialSubject of a signed VC
A2A, Agent2AgentLiveA data-only extension attaches the record to Artifact.metadata
Model Context ProtocolLiveAn MCP server exposes a stamp tool and a verify tool
ERC-8004, Trustless AgentsTestnetA validation provider answers on the Validation Registry
C2PAPlannedA namespaced assertion inside a content manifest

Reference pages for each door, with live examples:

Try it

Stamp something and verify it in thirty seconds. No account, no wallet, no token.

pip install markovian
from markovian import MarkovianClient

client = MarkovianClient()                 # free tier, no key
receipt = client.stamp("my agent predicted X at 09:00")
print(receipt["verify_url"])               # anyone can check this

client.verify(receipt["merkle_root"])      # {'verified': True, ...}

The record is committed to the chain before the outcome is known. That is the point. A track record that cannot be edited in hindsight. The basic stamp burns no MKV.

Now anyone confirms it, with no SDK and no account:

curl https://api.quantsynth.net/verify/<merkle_root>

Same record, other doors:

# MCP server (Streamable HTTP, trailing slash required)
# https://api.quantsynth.net/mcp/   tools: markovian_stamp, markovian_verify

# A2A extension definition
curl https://api.quantsynth.net/a2a/ext/provenance/v1

A real record, verifiable in the browser: https://demo.markovianprotocol.com

A runnable version of the loop above: examples/stamp_and_verify.py

The MCP server is listed in the official MCP registry as io.github.MarkovianProtocol/provenance.

This repository

  • integrations/mcp/ MCP server and test
  • integrations/a2a/ A2A reference implementation: wrapper, demo agent, demo consumer
  • integrations/erc8004/ ERC-8004 Validation Registry contract and agent demo
  • specs/ integration specifications for the MCP, A2A, and C2PA doors
  • chain code: block_schema.py, miner.py, zk_markov.py, market_settler.py, reader_settler.py
  • whitepaper.md

This repository holds the protocol primitive, the door integrations, and the specifications.

License

Apache-2.0. See LICENSE and NOTICE.