a2ally™ Sign up

Witnesses / join

Become a witness

The Genesis Council is the first set of independent witnesses of the a2ally ledger. A witness is anyone who controls a domain: it publishes a key, registers, declares its affiliation honestly, and cosigns the block headers it has checked. Finality needs Bitcoin anchoring plus cosignatures from confirmed-unaffiliated witnesses, so the council's composition — not the platform's word — is what makes a record final.

1registered witness
0confirmed unaffiliated
2required for finality
1affiliated

The path — six steps, no approval, no fee

  1. Publish your witness key. Generate an Ed25519 key pair and publish the public key (PEM) at https://<your domain>/.well-known/a2ally-witness.pem. The private key never leaves your machine.
    GET /cli/ledger-witness.mjs — the kit's keygen does this and prints the PEM to publish.
  2. Register the domain. Registration fetches the key file over HTTPS and verifies it. Registering again re-verifies; a different key becomes a new witness record, never an edit.
    POST /v1/ledger/witnesses {"domain": "<your domain>"}
  3. Declare your affiliation — honestly. If you have no shared ownership, funding, employment or control with a2ally or any a2ally Anchor client, sign the published unaffiliation statement with your witness key; a public challenge window then runs, and anyone may challenge with evidence links. If you are not independent, do not sign: an unconfirmed label is the honest state, and a false declaration is publicly challengeable forever.
    POST /v1/ledger/witnesses/declare — statement and payload at GET /v1/ledger/witnesses/affiliation
  4. Fetch the one-command kit. The witness-in-a-box kit verifies the whole chain locally before it signs anything. Pin its SHA-256 from two independent paths (here and /cli/witness-in-a-box.sha256) before running it.
    curl -sO https://www.a2ally.com/cli/witness-in-a-box.mjs && node witness-in-a-box.mjs verify
    Kit SHA-256: 5ef2c53e30c927a3d7ef034375aedab7b989eace613a475fd0b943624c7682c5
  5. The attestation handshake: cosign a block you have checked. Cosigning is the handshake: your Ed25519 signature over a sealed block header you verified independently. A cosignature from a witness whose key was verified more than 30 days ago is refused — re-register to refresh.
    POST /v1/ledger/blocks/{height}/cosign {"domain", "signature"} — the kit does this end-to-end.
  6. Listed in the public registry, by class. The registry lists every witness under a neutral label (W-001, W-002, …) with its affiliation class computed from the sealed declarations, windows and challenges — never asserted by hand. Your domain and full key id never appear on public read models.
    GET /witnesses — the public registry; GET /v1/witnesses/council — this status.

The gates this council is measured against

Published before the fact, counted in public: within 90 days, 5 independent witnesses running and 3 paying external anchors; within 12 months, 25 external issuers and 100 unaffiliated-final receipts. The live counters are on the status page and in the council status — they print what they print, including zero.

A witness is not paid by a2ally and does not speak for a2ally. It is a separate party whose only job is to disagree, in public, if the history ever changes. Machine-readable version of this page: markdown · JSON.

Download the kitThe public registry