Beats-Only Quickstart
Use this flow when you want public beat clock + timestamping without registering in the Registry.
Base URL:
https://beats.provenonce.dev
1) Read the latest global anchor
curl https://beats.provenonce.dev/api/v1/beat/anchorThis returns the latest anchor hash, beat index, and Solana transaction reference.
2) Timestamp your own data hash
Hash your payload locally (SHA-256), then submit only the hash:
curl -X POST https://beats.provenonce.dev/api/v1/beat/timestamp \
-H "content-type: application/json" \
-d '{"hash":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}'Response includes:
- anchor reference (
anchor_index,anchor_hash) - Solana transaction signature
- signed receipt metadata
utctimestamp in Unix epoch milliseconds
3) Verify proof path
- Canonical proof: Solana memo transaction
- Convenience verification:
receipt.signature+GET /api/v1/beat/key
curl https://beats.provenonce.dev/api/v1/beat/keyOptional: use the minimal client wrapper
npm i @provenonce/beats-clientimport { createBeatsClient } from '@provenonce/beats-client';
const beats = createBeatsClient();
const anchor = await beats.getAnchor();
const ts = await beats.timestampHash('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
const receiptOk = await beats.verifyReceipt(ts);
const anchorOk = await beats.verifyAnchor(anchor);
const chainOk = await beats.verifyOnChain(ts.on_chain.tx_signature); // defaults to current network
// One-call anchor retrieval + verification
const verifiedAnchor = await beats.getAnchor({ verify: true });Important scope boundary
Beats-only mode does not create agent identities, SIGILs, lineage proofs, or paid heartbeats.
Those are Registry features on https://provenonce.io.
Current anti-abuse limits for timestamping are quota-based per IP (5/min, 10/day).
Optional pro-tier mode can be enabled by operators via X-Beats-Tier-Token, which raises timestamp quotas.
Legal notes: Terms of Service, Disclosures