Getting started

Quickstart

Connect a Sepolia wallet, import the confidential ERC-7984 token you hold, and run your first confidential distribution.

Before you start

To use the hosted app you need:

  • A wallet on the Sepolia testnet (chain ID 11155111).
  • A little Sepolia ETH for gas.
Obscura ships no default token. Import the confidential ERC-7984 token you already hold by address in the in-app token menu.

Run your first distribution

1

Connect a wallet

Open the app and connect a Sepolia wallet.
2

Import your token

In the token menu, import the confidential ERC-7984 token you already hold by address. Obscura validates it onchain before you can use it.
3

Pick a rail

Open Airdrop, Vesting, or Disperse depending on how you want tokens to reach recipients.
4

Configure and launch

Name the campaign, set the schedule or claim window, and paste recipients as address, amount. Each allocation is encrypted per recipient before anything is written onchain.
5

Share

For airdrops you get a shareable claim link per recipient. Vesting and held balances show up in the recipient's portfolio automatically.

Recipients format

Paste or upload one recipient per line. The parser accepts commas, tabs, semicolons, or whitespace, and a header row is optional.

recipients.csv
address, amount0x71C7656EC7ab88b098defB751B7401B5f6d8976F, 2500000xAb5801a7D398351b8bE11C439e05C5B3259aeC9B, 100000

Addresses are checksum-normalized, amounts must be greater than zero and within the encrypted-balance ceiling, duplicates are flagged, and a batch is capped at 1000 recipients.

Run it locally

Optional: to build on Obscura, clone the repo and run it locally.

Local development requires Node >= 22 and pnpm >= 10.
Terminal
pnpm install # copy env and run the appcp app/.env.example app/.env.local               # optional: RPC, WalletConnect IDpnpm app:dev                                      # http://localhost:3000

WalletConnect

Without NEXT_PUBLIC_WALLETCONNECT_ID, injected wallets (MetaMask) work but WalletConnect wallets fail with a 403. Set it if you need WalletConnect.