Economic Primitive
Markovian Protocol / Event-Driven Provenance

CloudEvents Live

CloudEvents is the CNCF graduated specification for describing events in a common way, the envelope that messages ride inside across Kafka, NATS, serverless functions, and the agent protocols themselves. A Markovian COMMIT attaches to a CloudEvent as extension attributes, so any service that already consumes the event can verify where the payload came from and when, with no account and no new transport. The carrier the other doors ride inside is now provenance-aware.

COMMIT as CloudEvent extension attributes

The markovian-provenance/v1 record travels in the event's extension attributes, the spec's sanctioned slot for domain metadata. The names are lowercase alphanumeric and the values are strings, exactly as the CloudEvents type system requires, so the event stays valid for every conforming SDK and broker. Nothing about the core envelope changes.

# the data hash is committed, the receipt rides as extension attributes ce = CloudEvent({ "type": "com.markovianprotocol.agent.output", "source": "https://your-agent", # --- Markovian extension attributes --- "markovianroot": root, "markovianverify": verify_url, "markovianprovenance": record # full provenance record, JSON }, data)

Provenance, not truth

A CloudEvent carrying a Markovian record establishes that the event payload was committed at a point in time. It makes no claim that the payload is correct. The event's source records who emitted it; the Markovian root records that the content existed and when, anchored to Bitcoin independently of the broker or queue that carried the message.

The receipt is a BN128 Pedersen commitment and a Merkle root. Because it lives in extension attributes rather than the data body, a downstream consumer can verify provenance without parsing or trusting the payload itself, and the same receipt reads across the other doors, W3C VC, A2A, MCP, ERC-8004, and C2PA.

A real CloudEvent, round-tripped and verified

A real Markovian stamp was carried on a CloudEvent through the official SDK: built, serialized to the structured JSON format, parsed back, and the extension attributes recovered intact. The payload's hash matches the committed root, and the public verifier confirms it without trusting this page.

CloudEvent, Markovian provenance attributes
specCloudEvents 1.0, CNCF graduated
event typecom.markovianprotocol.agent.output
event ida30900e8-da70-4d7e-b7e9-03b44cc0700c
markovianroot9a69183d9c83bf35ea4d19cefeb03315da1acb220a8e2e0fa4b8d97fcd47381c
data_hash02c04b722864d2b2905c4e56682ddbad1fde5d479cd87c27154dd51c377100e3
block_height135260
SDK round-tripextensions intact markovian-provenance/v1
payload hashmatches on-chain

One slot, reachable from every transport

CloudEvents is deliberately transport-agnostic, the same event maps onto HTTP, Kafka, MQTT, AMQP, and NATS without changing shape. Putting the receipt in extension attributes means provenance travels with the event across every one of them, and through the brokers and function runtimes in between, with nothing to install on the wire.

It is also the envelope the agent protocols increasingly ride inside. A door at the CloudEvents layer sits underneath the others, so a committed output stays verifiable from the moment it is emitted, through every hop, to the service that finally consumes it.

Check it without trusting this page

The public verifier returns the provenance record behind the root, with no account and no dependency on this site. The PoC is a single runnable file in the repo.