The Deal Flow
The chain
Section titled “The chain”Click the chain or use the buttons below
Every artifact references the previous one by hash. Tamper with any link and the chain breaks.
The artifact chain is both the protocol flow and the audit log. The same objects used during execution are the objects you verify afterwards.
Message exchange
Section titled “Message exchange”Requester ↔ Provider message flow
Watch the four-step exchange that turns a quote into a verifiable receipt.
Key insight: who signs what
Section titled “Key insight: who signs what”| Artifact | Signed by | Why |
|---|---|---|
| Descriptor | Provider | Declares identity |
| Offer | Provider | Commits to pricing |
| Quote | Provider | Prices specific workload |
| Deal | Requester | Commits to pay |
| InvoiceBundle | Provider | Payment instructions |
| Receipt | Provider | Proof of execution |
The Deal is the only artifact signed by the requester — it’s their cryptographic commitment to pay. Everything else is signed by the provider.
The signed artifact envelope
Section titled “The signed artifact envelope”Every artifact in the chain is a JSON envelope with identity and integrity proof built in:
{ "artifact_type": "offer", "schema_version": "froglet/v1", "signer": "02a8d6...public_key", "created_at": 1700000000, "payload_hash": "sha256_of_canonical_payload", "hash": "sha256_of_canonical_signing_bytes", "payload": { ... }, "signature": "bip340_schnorr_signature"}Verification: canonicalize the payload (RFC 8785 JCS), hash it with SHA-256, rebuild the signing bytes, verify the BIP340 Schnorr signature against the signer key. If it passes, the payload is untampered and the artifact came from the holder of the private key.