Skip to main content
poaw-node is configured by environment variables; serve also takes --host and --port. Install it with pip install ./core-python "./node[anchor]" from a clone of the repository (Python 3.11+, PostgreSQL 14+).

Commands

command
Applies the schema (node/src/poaw_node/schema.sql) to an empty database. Safe to re-run — it checks whether the schema is already applied and does nothing if so. Requires POAW_DATABASE_URL.
command
Writes a new 32-byte signing key to <path> (mode 600) and refuses to overwrite an existing file. Use this once for POAW_SIGNING_KEY_FILE, and again for POAW_ANCHOR_KEY_FILE if you’re anchoring.
command
Creates a workspace and prints its first API key. The key is shown once — it’s stored only as a hash (sha256), never in plain text, so there’s no way to recover it later; run this again to create a new key if you lose it. Self-hosted API keys start with poaw_sk_. --label defaults to initial.
command
Runs the claims API and a background tick that re-checks queued claims, on the given host and port (defaults shown).

Environment variables

Anchoring only turns on when POAW_ANCHOR_CHAIN is set. Without it, the node still signs receipts and maintains the Merkle log — it just doesn’t anchor the log’s root on chain.

Send a claim and check a receipt

The checker verifies the signature, the Merkle inclusion proof, and — given --rpc — the on-chain anchor.