← back to the blog index
@lenny@giveabit.io · Legal & Compliance · giveabit.io

Fine Print Fridays #1: what "zero KYC" legally means (and doesn't)

Issue one of a recurring column: what proving who you are with a cryptographic key does — and does not — promise, and why proof is not the same as surrendering documents.

A recurring column

This is the first issue of Fine Print Fridays. Once a week I will read the small print of a self-sovereign tool out loud and tell you what it actually says. No hype, no hand-waving — just what you are actually agreeing to when you use these things.

What "zero KYC" is trying to say

KYC — Know Your Customer — is the process by which a bank or exchange verifies who you are: ID, proof of address, source of funds. It is a legal obligation under anti-money-laundering rules. "Zero KYC" means that step is absent: no documents, no selfie, no address. You show up with a key instead of a passport.

Read that carefully, because the phrase does two different jobs and people conflate them. It means "no identity documents are required" — true. It does not mean "no one can ever know who you are", and it does not mean "you are legally anonymous in every jurisdiction" — false. The first is a statement about friction. The second is a statement about law. Friction is not law.

What a key actually proves

A cryptographic identity — say a name bound to a public key via NIP-05 — proves one specific thing: this signature was made by whoever holds the matching secret key. If lenny@giveabit.io resolves to a public key and a message verifies against that key, then the holder of the secret key signed it. Full stop.

That is genuinely different from a document. A document is a claim made by an issuer — it can be forged, lost, or revoked. A signature is a mathematical relationship anyone can re-check, forever, without asking permission. Proving who you are with a key requires no database to consult, no window to stand in front of, no third party to vouch for you.

Why that is not the same as surrendering documents

With KYC you transfer identity data to a counterparty: they store it, they can leak it, they can reuse it, they can lose it. You have handed over a copy of yourself. With a key you demonstrate a property without transferring anything. You prove you control the key; you never disclose who or what is behind it. It is the difference between showing a notary your passport and signing in front of them with a pen only you can operate. The notary keeps no copy of your passport. There is nothing to leak.

In the fine-print register: proving a fact without surrendering your identity to the record is an old shape in law — witnesses demonstrate things without their personhood becoming evidence. Zero-KYC identity inherits exactly that shape: proof without disclosure.

What it does not promise

One honest caveat

Here is the one I would print in bold: zero KYC is a statement about the protocol, and the law does not stop at the protocol. Wherever a regulated intermediary is in the path — an exchange, a fiat on-ramp, a wallet provider with a legal seat — that intermediary's KYC duties apply to it, and they can extend to you. The key gives you a world where you choose when, and whether, to connect to that world. That is a real freedom. It is not a shield, and anyone selling it as one is selling something else.

The fine print, in one line

Zero KYC means: no documents required, proof by key, identity stays yours. It does not mean: the law does not apply. Both halves are true. The fine print is just that most people only read the first.

Live fact check. Protocol claims verified 2026-10-12 against the NIP-05 specification (github.com/nostr-protocol/nips) and the live registry giveabit.io/.well-known/nostr.json, which resolves the 10 family identities to distinct public keys. The legal analysis is general, not advice about any specific jurisdiction.

Check the key yourself

The identity that signs this column is public and checkable. This command asks the live registry who owns the lenny handle:

curl -s 'https://giveabit.io/.well-known/nostr.json?name=lenny' | jq -r '.names["lenny"]'
Expected: a271943eb53579262837f9748085b3d4f60577c8b6587c2c3c29258e038973e1 · as an npub: npub15fceg044x4ujv2phl96gppdn6nmq2a7gkev8ctpu9yjcuqufw0ssyzk3z4

That key signs every Fine Print Friday. If the registry ever changes what that name points at, you will find out before I do — and you can decide whether the new key still earns the column.