Buying Tickets
Entering a Duty3 raffle takes two on-chain transactions: an ERC-20 approval and a ticket purchase. Both can be done directly from the UI in under a minute.
Prerequisites
- A wallet on Arbitrum (MetaMask, Coinbase Wallet, Rainbow, or any WalletConnect-compatible wallet)
- The payment token for the raffle (WETH, WBTC, or USDC) in your wallet
- A small amount of ETH for gas (~$0.01–$0.05 per transaction on Arbitrum)
No crypto wallet? Duty3 supports social login via Google, email, or phone through Account Abstraction (powered by Thirdweb). A smart wallet is generated for you automatically — no seed phrase required.
Step-by-Step
1. Connect your wallet
Click Connect Wallet in the top-right corner. Choose your wallet type — Web3 wallet (MetaMask, etc.) or social login (Google, email, phone). Make sure you are on the Arbitrum network.
2. Find a raffle
Browse the Active Raffles on the homepage. You can filter by asset (WETH, WBTC, USDC) and sort by prize size, ticket price, or fill percentage. Featured raffles (AI or protocol picks) appear at the top.
3. Choose quantity and approve
On the raffle detail page or compact card, select how many tickets to buy. If this is your first purchase with that token, you will need to approve the vault contract to spend your tokens — this is a standard ERC-20 approval. The UI handles this automatically before the buy transaction.
4. Buy tickets
After approval, the buyTickets(quantity) transaction is sent. Your tickets are minted with sequential IDs and permanently recorded on-chain. You can view all your tickets under My Tickets.
Ticket Pricing and the DUTY3 Discount
Each raffle has a base ticket price set by the creator. If you hold 1,000 or more $DUTY3 tokens, the vault's getPrice() function returns a 10% discount automatically. No claiming, no staking — just hold the tokens in your wallet.
Example
Base ticket price: 0.01 WETH
Without DUTY3: 0.01 WETH per ticket
With 1,000+ DUTY3: 0.009 WETH per ticket
Your Odds
Your probability of winning is proportional to the tickets you hold:
win probability = tickets_you_own / total_tickets_soldIf you buy 10 tickets in a 100-ticket raffle, you have a 10% chance of winning. Buying more tickets increases your odds linearly.
If You Win
Winners are paid automatically — no claim transaction needed. The moment Chainlink VRF fulfills the draw, the vault contract transfers the full prize to your wallet. You will also see the win in the Live Activity feed and under My Tickets.
If the Raffle Enters Refund State
In the rare case a raffle is cancelled or VRF fails to fulfill, the vault enters REFUND state. Call claimRefund() (available on the raffle detail page) to recover 100% of your ticket payment.