live · mainnetoc · pledge
bip-322 · stake-bonded
v0.1 · alpha·bitcoin-anchored commitments

pledge your word to bitcoin.
bond your stake.
anyone verifies the outcome.

OC Pledge is a Bitcoin-anchored commitment primitive. Swear a testable proposition (resolved at a future block height), bond an OrangeCheck stake, publish on Nostr. Anyone verifies offline. A broken pledge burns the stake on the public ledger — enforcement by exposure, no custody, no court.

· bip-322 identity· stake-bonded· public ledger· offline-verifiable
pledge.json · { "v": 1, "kind": "pledge" }
{
  "v": 1,
  "kind": "pledge",
  "id": "9f3e7b…1aa2",
  "pledger":   { "address": "bc1qalice…", "alg": "bip322" },
  "claim": {
    "text":     "I will publish the v1 SPEC by 2026-06-01.",
    "resolves": "block_height >= 902400"
  },
  "stake": {
    "attestation_id": "9e3f…",
    "sats_bonded":    250000
  },
  "witnesses":     [ "bc1qbob…", "bc1qcarol…" ],
  "publication":   { "nostr_kind": 30730 },
  "pledged_at":    "2026-04-24T18:30:00Z",
  "resolves_at":   { "block_height": 902400 },
  "sig": { "alg": "bip322", "value": "…" }
}
§ how it works

five steps. one signing ceremony. no custody.

OC Pledge composes three primitives that already exist: BIP-322 for authorship, OrangeCheck for the bonded stake, and Nostr for the public ledger. The protocol glue is small; the resolution rule is a pure function anyone can run.

  1. [01]

    compose

    Write the proposition. State the resolution rule (a future block height, an externally observable predicate, or a witness quorum). The canonical envelope is a six-line plaintext object: pledger, claim, stake, witnesses, resolves_at, pledged_at.

  2. [02]

    bond stake

    Reference an OrangeCheck attestation. The attested sats are bonded — they are not custodied by us, but a broken pledge marks the attestation public. The stake is the cost of breaking your word.

  3. [03]

    sign once

    Your wallet signs the canonical envelope via BIP-322. UniSat, Xverse, Leather, Sparrow, Electrum. The id is sha256 of the canonical bytes — content-addressed, deterministic.

  4. [04]

    publish on nostr

    The pledge is broadcast to relays as a kind-30730 event. Witnesses (named in the envelope) co-sign. The pledge is now a public, immutable commitment — anyone reading it knows the stake and the resolution rule.

  5. [05]

    resolve at height

    When the resolution block is mined, anyone runs the pure-function check: did the predicate hold? If yes, the pledge is KEPT. If no, it is BROKEN — the stake attestation is publicly marked, and the pledger pays a reputational cost.

§ why it exists

the web has no durable,
permissionless, custody-free
commitment primitive.

Existing options either require a custodian (a broker, a court, a smart contract, a platform) or have no skin in the game (a tweet, a verbal promise). OC Pledge binds the pledger's Bitcoin identity to a testable claim, with stake measured in real sats — and no custodian.

systemauthorshipstakeresolutioncustodypermissionless
Twitter / X promise✓ (handle)platform
Kalshi / Polymarket✓ (custodied)broker
Smart-contract escrow✓ (eth addr)✓ (locked)✓ (oracle)✓ (contract)
Notarised contract~ (legal)courtlawyer
Verbal commitment~
oc pledge✓ (btc)✓ (oc)✓ (pure fn)✗ (none)
[01]

research preregistration

> claim:
  I commit to the analysis plan in this document; I will publish results before block 902400 regardless of sign of the effect.

A scientist locks the analysis plan, bonds 250k sats, names two witnesses. Selective reporting becomes visible: the published paper either matches the pledged plan or the stake is publicly burned.

[02]

SLA commitment

> claim:
  My API will maintain p99 latency < 200ms over the next 4032 blocks.

A vendor pledges service quality. Anyone running the resolution rule (sampling the API at the resolution height) can prove a violation. The bonded stake replaces vague service credits.

[03]

open-source delivery

> claim:
  I will tag v1.0 of repo X by block 905000.

A maintainer publishes a delivery pledge with bonded stake. Sponsors and downstream users have a credible signal — broken pledges are visible on the public ledger.

See WHY.md for the full hypothesis-by-hypothesis design rationale.

§ layered with orangecheck + oc stamp

one spec. one package.
one hosted reference client.

OC Pledge stands on OrangeCheck attestations (the bonded stake) and integrates with OC Stamp (signing the proposition document). It is MIT-licensed and vendor-free. Re-implement the SPEC in any language — the test vectors are the ground truth.

[01]orangecheck

identity

Bitcoin-address-bound identity with attested stake. The substrate every other primitive composes against.

[02]oc stamp

provenance

Sign anything with a Bitcoin address; anchor to a block via OpenTimestamps. Authorship + priority.

[03]oc pledge (here)

commitment

Swear a testable proposition; bond an OC stake; resolve at a future block height. Custody-free contracts.

§ bond your word

pledge your word to bitcoin.
bond your stake.
anyone verifies the outcome.

Open the create flow, connect a Bitcoin wallet, write your claim, bond your OrangeCheck stake. One BIP-322 signature, one Nostr publish. The pledge is public; the resolution is a pure function anyone can run.

with thanks to bram kanstein — the lineage signal of every orangecheck primitive.