Getting started

How it works

From upload to claim in five steps, with every amount encrypted per recipient before it touches the chain.

The five steps

1

Connect

Connect a Sepolia wallet and import the confidential ERC-7984 token you already hold, by address.
2

Configure

Name the campaign, set a claim window or schedule, and paste recipients as address, amount.
3

Encrypt

Each allocation is encrypted to its recipient before anything is written onchain.
4

Launch

Approve the operator, deploy and fund, then sign one encrypted allocation per recipient.
5

Claim

Recipients verify and decrypt their own amount with one signature, then claim.

Encryption is client-side

Amounts are encrypted in your browser, per recipient, before the transaction is submitted. Plaintext values never leave your machine.

The confidentiality model

Obscura follows the ERC-7984 model: transfers and addresses are public, but the values moved are encrypted.

PublicPrivate
Recipient addressesAllocation amounts
The ERC-7984 transfersPool sizes and subtotals
Contract, token, and admin addressesVested / claimed balances and totals

Decryption is access-controlled by an onchain ACL. Only the recipient can decrypt their own amount, and only the campaign owner can decrypt totals. The contract that stored a value must have granted the wallet access first, or the decrypt reverts.

Where amounts live

Onchain, an encrypted amount is a 64-bit ciphertext referenced by an opaque handle. Contracts operate on handles, and the homomorphic math runs off-chain on the Zama coprocessor. You never see a plaintext amount on a block explorer, only handles and addresses.

"Approve the operator" in step 4 is a required ERC-7984 approval that lets the distribution contract move your tokens. See ERC-7984 tokens for how operators differ from ERC-20 allowances.