Getting started
Introduction
Obscura runs confidential airdrops, vesting, and bulk payouts on the Zama Protocol. Allocations stay encrypted onchain, so the distribution works normally, but only each recipient can decrypt their own number.
The one idea
Recipient addresses stay visible onchain (the ERC-7984 model), but the amounts are ciphertext. Each recipient verifies and decrypts their own allocation with a single wallet signature.Choose your path
These docs serve four readers. Start wherever you fit; every page cross-links to the rest.
Distributors
You want to send tokens. Run a confidential airdrop, vesting schedule, or bulk payout.
Recipients
You received an allocation. Verify, decrypt, and claim what is yours.
Developers
You want the internals: the stack, the ACL, and one-signature batching.
Just reading
You want to understand the idea. The five-step model, in plain language.
What Obscura is
Most airdrop and vesting tools write each recipient's exact allocation to the blockchain in plaintext. Anyone can read the whole cap table: who received how much, the subtotals, and the pool size. Obscura keeps the amounts encrypted onchain instead. Balances, transfers, and claims still work, but only each recipient can decrypt their own number, and only you see the totals.
It is built on the Zama Protocol and FHEVM, the TokenOps SDK, and ERC-7984 confidential tokens, and it runs live on Sepolia.
The three products
Obscura ships three distribution rails. They differ in how tokens reach recipients, not in what stays hidden.
Confidential Airdrop
Pull model. Sign an encrypted claim authorization per recipient; they claim from a self-contained link.
Confidential Vesting
Schedule model. Per-recipient grants with cliffs and linear release; balances stay encrypted.
Confidential Disperse
Push model. Bulk payout to many recipients in one transaction, with private subtotals.
What stays private
The split is the same across all three rails:
| Encrypted (private) | Onchain (public) |
|---|---|
| Allocation amounts | Recipient addresses |
| Pool sizes and subtotals | The transfers themselves (ERC-7984) |
| Vested and claimed balances | Contract and token addresses |
| Totals (owner-only) | The campaign admin address |
Key terms
A quick glossary if the vocabulary is new. Each is explained in full on its concept page.
| Term | What it means |
|---|---|
| Encrypted amount | A value sealed as ciphertext onchain. Only an authorized wallet can decrypt it. |
| Handle | The onchain reference to an encrypted value. Contracts work on handles, not plaintext. |
| ERC-7984 | The confidential-token standard Obscura distributes. Balances and transfers are encrypted. |
| Operator | An address you approve to move your confidential tokens (the ERC-7984 version of an allowance). |
| ACL | The access list that decides who may decrypt a value. Without a grant, a decrypt fails. |
| Claim link | A self-contained URL that carries an airdrop recipient's encrypted allocation and proof. |