Quickstart
Goal: go from a file on your disk to a published, verifiable stamp in under a minute.
You will need:
- A Bitcoin wallet that supports BIP-322 (UniSat, Xverse, Leather, Sparrow, Electrum, OKX, Phantom all qualify).
- A browser.
No account. No server. No fees.
Option A — use the hosted web client
- Open stamp.ochk.io/create.
- Drop the file you want to stamp. Your browser hashes it in-place; the bytes never leave your tab.
- Connect your wallet. Your Bitcoin address auto-fills.
- Click sign. Your wallet pops up with a short canonical message (six
lines, starting with
oc-stamp:v1). Approve. - The client submits the envelope id to two OpenTimestamps calendars. You get a pending proof immediately, and a confirmed anchor within about an hour.
- Download the
.stampfile. Ship it alongside your content, or copy the share link.
Later, anyone can drop that .stamp into
stamp.ochk.io/verify and re-derive all three
guarantees — authorship, priority, stake — offline.
Option B — use the SDK
npm i @orangecheck/stamp-core @orangecheck/stamp-ots
import { stamp } from '@orangecheck/stamp-core';
import { submitToCalendars, toStampOts } from '@orangecheck/stamp-ots';
// 1. Build a signed stamp envelope.
const env = await stamp({
content: new TextEncoder().encode('hello stamp'),
mime: 'text/plain',
signer: {
address: 'bc1q…',
signMessage: async (msg) => walletSignBIP322(msg),
},
});
// 2. Anchor to Bitcoin (pending proof).
const proof = await submitToCalendars(env.id);
const anchored = { ...env, ots: toStampOts(proof) };
// 3. Share — the envelope is self-contained JSON.
console.log(JSON.stringify(anchored, null, 2));
Verify
import { verify } from '@orangecheck/stamp-core';
const result = await verify({
envelope: anchored,
content: new TextEncoder().encode('hello stamp'), // optional; checks bytes match
verifyBip322: async (msg, sig, addr) => {
/* your BIP-322 verifier */
},
});
if (!result.ok) throw new Error(`${result.code}: ${result.message}`);
console.log('authorship + priority + content: ✓');
See the envelope format for the wire schema and the full verification algorithm for the seven check steps.
What's next
- Why OC Stamp? — the design rationale and the hypothesis stress tests.
- The spec — normative rules if you're implementing in another language.
- Security model — what OC Stamp proves, what it doesn't, and the trust assumptions.