live · mainnetoc · pledge
bip-322 · stake-bonded
§ dashboard
§ pledge · create

compose a pledge.

Write the proposition. Bond an OrangeCheck stake. Set the resolution rule. Sign once with your Bitcoin wallet, publish on Nostr. Anyone reading the envelope knows what is being pledged, who is pledging it, and what they stake on it.

[01]

swearer

The Bitcoin address signing this pledge. Must be controllable by your wallet at sign time.

[02]

proposition

Single-line claim, ≤ 512 bytes. This is what your wallet shows you at signing time. The cryptographic truth is the resolution query — this line is for human legibility.

[03]

resolution

A pure-function predicate any verifier can run against public state. The mechanism picks the verifier's domain; the query is the predicate inside it.

example for chain_state:
address(bc1qalice000000000000000000000000000000000).balance >= 500000
[04]

timing

When the verifier evaluates the resolution. Block-height anchors to Bitcoin chain state; wall-clock time is for predicates that do not depend on a specific block.

[05]

bond

Backs the pledge with skin in the game. Verifiers re-resolve the OC Attest reference against current chain state at verify time. Bonded sats are never custodied — enforcement is by public exposure.

[06]

counterparty + dispute

Optional. A counterparty makes the pledge bilateral; a dispute mechanism lets a third party (or vote) settle contested resolutions.

[07]

signing

Pick a wallet — the canonical message above goes to it for a single BIP-322 prompt. Nothing leaves your machine until you press publish.

§ wallet