When you want to pay for a raffle ticket using an ERC20 token (like $POLLY, $USDC, or a partner token), you might see an “Approve” button before you can click “Buy”. This is a standard and important security feature of interacting with smart contracts on EVM-compatible blockchains.Documentation Index
Fetch the complete documentation index at: https://docs.pollyprize.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Why is Approval Needed?
- You Own Your Tokens: By default, a smart contract (like the PollyPrize raffle contract) cannot access or move tokens directly from your wallet. You have sole control.
- Granting Permission: To pay with an ERC20 token, you need to explicitly grant the raffle contract permission to transfer a specific amount of that token from your wallet to itself when you initiate the purchase.
- The
approveFunction: This permission is granted by calling theapprovefunction on the token’s contract, not the raffle contract. You are telling the token contract, “Allow the raffle contract (the spender) to withdraw up to X amount of my tokens.”
How Does it Work?
- Click Approve: You click the “Approve [Token Symbol]” button in the PollyPrize interface.
- Wallet Confirmation: Your connected wallet (MetaMask, Abstract Wallet, etc.) pops up, showing a transaction details screen. This transaction calls the
approvefunction on the specific token contract (e.g., the $POLLY contract).- Spender: It will clearly show the PollyPrize raffle contract address as the “spender” being granted permission.
- Amount: Modern dApps often request approval for a very large amount (
maxUint256) or the exact amount needed for the transaction. Approving a large amount is convenient as you only need to do it once per token per dApp, but be aware of the implications (see warning below). PollyPrize might request approval only for the cost of the tickets you are currently buying.
- Confirm Transaction: You approve the transaction in your wallet, paying a small gas fee.
- Permission Granted: Once the transaction is confirmed on the blockchain, the token contract records that the PollyPrize contract is allowed to withdraw the specified amount from your balance.
- Buy Button Enabled: The PollyPrize interface detects the successful approval, and the “Buy Tickets” button becomes active. When you click “Buy Tickets”, the raffle contract can now successfully call
transferFromon the token contract to pull the payment from your wallet.
