logo

Want to create a raffle to engage your community? Here is how you can!

Creating a Raffle Link can look similar to the previous Link creation processes. You can use either EthersV5 as a signer or a different library, and you'll need an API Key to use getRaffleLinkFromTx function. Please make sure to request for an API Key here.
plain text
import peanut, { getDefaultProvider } from '@squirrel-labs/peanut-sdk' import { Wallet } from 'ethersv5' const chainId = '11155111' // Sepolia const mnemonic = 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol' async function createLinks(): Promise<string> { let wallet = Wallet.fromMnemonic(mnemonic) const provider = await getDefaultProvider(chainId) wallet = wallet.connect(provider) const linkDetails = { chainId: chainId, tokenAmount: 0.01, // Total amount of the raffle tokenType: 0, // 0 for ether, 1 for erc20, 2 for erc721, 3 for erc1155 tokenDecimals: 18, } const numberOfLinks = 5 const password = await peanut.getRandomString(16) const prepareTxsResponse = await peanut.prepareRaffleDepositTxs({ userAddress: wallet.address, linkDetails, password, withMFA: false, numberOfLinks: numberOfLinks, }) const transactionHashes: string[] = [] for (const unsignedTx of prepareTxsResponse.unsignedTxs) { const convertedTx = peanut.peanutToEthersV5Tx(unsignedTx) const signedTx = await wallet.sendTransaction(convertedTx) transactionHashes.push(signedTx.hash) } const getRaffleLinkResponse = await peanut.getRaffleLinkFromTx({ linkDetails, password: password, txHash: transactionHashes[transactionHashes.length - 1], numberOfLinks: numberOfLinks, APIKey: '', // Request an api key withCaptcha: false, withMFA: true, // for double-claim prevention. Talk to us if you want to know more. }) return getRaffleLinkResponse.link } createLinks().then((link) => console.log(link))
We also support MFA and captcha, as well as multiple tokens in one raffle. Get in touch via Telegram or Discord to find out how!