Protocol
Block ...
Regime ...
ZK Verified
COMMIT Work Function

Any data output.
Unforgeable proof.

Commit any payload to the chain state. Every stamp is ZK-committed via BN128 Pedersen commitment, included in the Merkle root, and anchored to Bitcoin via OP_RETURN at the next block. The proof exists independently of any server, service, or trusted party.

Get MKV from Faucet Download SDK
How It Works

One action. Permanent output.

One MKV per stamp. The chain assigns the block, computes the ZK commitment, includes the payload hash in the Merkle root, and anchors to Bitcoin.

Step 01

Fund a wallet

Get MKV from the faucet (100 MKV) or receive from another wallet. Each stamp costs 1 MKV.

Step 02

Submit payload

POST wallet + data to api.quantsynth.net/stamp. Any payload: hash, model output, regime reading, document fingerprint.

Step 03

Verify forever

The Merkle root and ZK proof are returned immediately. Verify at api.quantsynth.net/verify/{root} from any machine, any time.

Proof Chain
Payload
data + wallet
ZK Commitment
BN128 Pedersen
Merkle Root
SHA-256 tree
Bitcoin Anchor
OP_RETURN
Public Verifier
api.quantsynth.net/verify
Quickstart

Fund and stamp in 60 seconds.

Requires Python 3.8+. No wallet setup. No account creation.

Install SDK
# download
curl -O https://api.quantsynth.net/sdk/markovian.py
Python — Fund and Stamp
from markovian import MarkovianClient
 
client = MarkovianClient()
 
# get test MKV (100 MKV, once per wallet)
wallet = "your_wallet_address"
faucet = client.faucet(wallet)
print(faucet["balance"]) # 100
 
# stamp any payload
result = client.stamp(
  wallet=wallet,
  data="QQQ DISTRIBUTION confirmed 2026-06-18"
)
 
print(result["merkle_root"]) # permanent proof
print(result["block"]) # block at commitment
print(result["zk_valid"]) # True
print(result["bitcoin_anchor"]) # OP_RETURN txid
Verify from anywhere
verify = client.verify(result["merkle_root"])
# or via HTTP
GET https://api.quantsynth.net/verify/{merkle_root}
API Reference

Endpoints

Method Endpoint Description
POST /stamp Submit a stamp. Body: {"wallet": "...", "data": "..."}. Returns merkle_root, block, zk_commitment, zk_valid, bitcoin_anchor.
GET /stamps/{wallet} All stamps for a wallet. Returns array ordered by block descending.
POST /mkv/faucet Fund a wallet with 100 MKV test tokens. Body: {"wallet": "..."}. Once per wallet.
GET /mkv/balance/{wallet} Current MKV balance for a wallet address.
GET /verify/{root} Verify a Merkle root. Returns block, zk_valid, bitcoin_anchor, timestamp.
curl — stamp
curl -X POST https://api.quantsynth.net/stamp \
  -H "Content-Type: application/json" \
  -d '{"wallet":"your_wallet","data":"payload"}'
ZK Construction

BN128 Pedersen commitment.

Every stamp is committed using the same ZK construction that validates blocks. The proof is not a hash or a signature — it is a zero-knowledge commitment that proves the data existed at that block state without revealing the data itself.

Commitment Structure
CurveBN128— same curve as block ZK proofs
CommitmentC = s·G + r·H— Pedersen, computationally hiding and binding
Proof typeSchnorr sigma— Fiat-Shamir, non-interactive
AnchorOP_RETURN— Bitcoin chain, immutable
RootSHA-256 Merkle— public verifier at api.quantsynth.net/verify
Protocol Functions

Two functions. One chain.

COMMIT

Data output. ZK-committed. Merkle-rooted. Bitcoin-anchored. 1 MKV.

stamp.markovianprotocol.com
RESOLVE

Condition registered against a future regime state. Fires when the chain matches. No trusted executor.

trigger.markovianprotocol.com →