Create. Share. Claim.
Etherbox is a smart contract protocol for distributing tokens through unique “boxes” — claimable allocations that can be shared with anyone via a simple ID.
Etherbox allows anyone to:
- send crypto gifts to friends
- reward community members
- run public airdrops
- distribute tokens during launches
Each box has a unique ID. Anyone with the ID can claim — depending on the rules set by the creator.
The creator defines:
- token
- amount per wallet
- number of claims
- public or private access
const boxId = ethers.id("my-unique-box");Send it anywhere:
- DM
- Telegram / Discord
- public post
Users:
- paste the box ID
- connect wallet
- click Claim
Tokens are transferred instantly.
- 🧾 Public & private boxes
- 👥 Whitelist support
- 🛡 Anti-Sybil hook (extensible)
- ⚡ Instant on-chain claiming
- 🧊 Simple and predictable logic
- 💸 0% platform fee (gas only)
contracts/
├── core/
│ ├── Etherbox.sol
│ ├── Box.sol
│ └── Claim.sol
├── extensions/
│ ├── AntiSybil.sol
│ └── Whitelist.sol
├── libraries/
│ ├── BoxLib.sol
│ └── ValidationLib.sol
├── interfaces/
│ ├── IERC20.sol
│ └── IEtherbox.sol
└── mocks/
└── MockERC20.sol
npm installnpx hardhat compilenpx hardhat testCreate a box locally:
npx hardhat run scripts/createBox.tsDeploy contract:
npx hardhat run scripts/deploy.ts✔ Public box creation ✔ Private box (whitelist) ✔ Claim execution ✔ Double-claim protection ✔ Validation (limits, inputs) ✔ Anti-Sybil placeholder
See:
docs/ARCHITECTURE.mddocs/BOX_FLOW.mddocs/SECURITY.md
This repository is a reference implementation of the Etherbox protocol.
- Not audited
- Not intended for production use
- Provided for educational and demonstration purposes
MIT
Etherbox aims to become a universal primitive for token distribution across Web3:
- simple
- composable
- chain-agnostic
A box is just an ID. Everything else is trustless.
Built for Web3 distribution.
