xDrop is a cross-chain airdrop system built on Sui and powered by SuiLink. It lets you distribute Sui coins to users on Solana, Ethereum, and other EVM chains.
- src/sui/ - Sui Move smart contract.
- src/sdk/ - TypeScript SDK to interact with the contract.
- src/web/ - Web interface for users and admins.
Each XDrop object manages the distribution of a specific coin type (e.g., USDC) for addresses from a foreign network (Ethereum, Solana). The object tracks claims, holds the coin balance, and enforces the state transitions shown below.
stateDiagram-v2
[*] --> PAUSED: new() + share()
PAUSED --> OPEN: admin_opens_xdrop
OPEN --> PAUSED: admin_pauses_xdrop
PAUSED --> ENDED: admin_ends_xdrop
OPEN --> ENDED: admin_ends_xdrop
ENDED --> [*]
- PAUSED: Initial state. Users cannot claim tokens. Admin can add claims.
- OPEN: Users can claim tokens. Admin can still add new claims.
- ENDED: Terminal state. Claims permanently disabled. Admin can reclaim any remaining balance.