Import a list, catch every mistake, and pay in one approved batch, every payment confirmed on-chain, not just "sent and hoped."
No signup form. Connect a wallet and you're in.
| Recipient | Amount | Status |
|---|---|---|
| 0x8f2a…c91d | 250.00 USDC | Confirmed |
| 0x3b9e…04af | 250.00 USDC | Confirmed |
| 0x71c4…aa02 | 180.50 USDC | Pending |
| 0x5d10…7e3b | 180.50 USDC | Queued |
Every manual payout round carries the same three risks.
A typo'd wallet address or a duplicate row means money sent to the wrong place, with no way to undo it.
A submitted transaction isn't a paid one. Without reconciliation you're guessing who actually got funds.
Handing a private key to a script means trusting it with your whole treasury, forever, not just for one payout.
The same reviewable process whether you're paying 5 wallets or 5,000.
Upload a CSV/Excel file or paste a list. We map wallet, amount and name automatically.
Bad addresses, duplicates and missing amounts are flagged before anything moves.
Sign one scoped permission in your wallet, capped to this exact batch, nothing more.
Payouts run in on-chain batches, with live status per recipient.
Every payment is checked on-chain. Paid means paid, confirmed, not just sent.
Hackathon winners, giveaway rewards, bounty payments, enter amounts once, pay everyone at once.
Pay by tier, by contribution score, or by a custom formula. Define the rule once, reuse it every round.
Team incentives, contributor payments, fund distributions, club or community rewards — if you can export a list, you can pay it. Same workflow, every workspace is private to you.
We coordinate the payout. Your wallet controls the funds.
We never hold a private key. Every approval is a signature from your own wallet.
Each approval is capped to one batch, one token, one total amount, not standing access to your funds.
Status comes from the chain, not from a database guess. You always know what actually landed.
Connect a wallet and import your first recipient list in under a minute.
Open dashboard