Frequently Asked Questions
JokeRace Basics
What is a contest?
A contest is just a way for people to submit entries and people to vote on their favorites. Every contest includes two periods: a submission period and a voting period. The participants in each might be totally different, exactly the same, or subsets of each other—you have complete control to decide who can submit and who can vote. You can define the addresses that can submit or vote—or let anyone submit or vote (in the latter case, they'll just need to pay per vote to avoid botting).
After you create a contest, you can add and fund an optional rewards pool too. The rewards pool is set up proportionately—for example, you might offer 60% of rewards to 1st place, 30% to 2nd, 10% to 3rd—and anyone can execute the transaction to send any rewards in the pool to the winners after the contest is over.
Popular contest use cases include grants, hackathons, governance, bounties, ideathons, giveaways, awards ceremonies, best meme/tweet/essay competitions, feature requests, polls, game shows, etc. etc. Any kind of community decision is, effectively, a contest.
Why is JokeRace onchain?
Onchain contests give you five benefits you couldn’t get offchain.
-
Monetization. Monetizable contests are only possible by building onchain. There is no way to programatically offer rewards to winners offchain. And just as importantly, there is no way to monetize contests directly offchain either—whereas onchain, we can split all commissions with you 50/50 so that everyone can earn. And that’s with 0 credit card or appstore fees that you’d incur offchain. All of this means we are the only way for projects to build a viable business through contests.
-
Reputation. Every vote in an onchain contest is an attestation that a submission was valuable. If Vitalik votes for you in an onchain hackathon, you have a permanent portable attestation that can get you access to communities, airdrops, and job opportunities... even if you lose the hackathon. This is why reputation is crucial as a user incentive: by participating in your contest, players earn powerful onchain reputation they can leverage for years to come. But reputation is also important for you as a contest creator: now you can easily track your most valuable users in case you ever want to offer them airdrops, access, or power within citizens councils in your own community.
-
Insight. Onchain data gives you powerful insight into your community. At a high level, you can leverage onchain data to see which members are most active, which submitters and voters are most valuable, which ideas command the most passion, and which commonalities exist between players: you could even build a whole social graph of shared user tastes. But at a deeper level, you can also get full insights from customer segmentation about power users’ onchain activity across other protocols and projects.
-
Executability. Anyone can build modules on top of JokeRace so that the result of a vote triggers an action on their service. Hats has already built a module to give winners role-based NFTs, but other modules could include minting winning submissions or executing a winning piece of code. By building onchain, we can be the decision layer of the internet.
-
Gamification. Give credentials that let winners move up the ranks of future contests. Incentivize your community to complete onchain actions on your service to get more voting power. Livestream a contest with limited contestants and let thousands of voters vote from home. Or maybe most significantly, let submitters know they can (and often do) create their own incentives for voters by leveraging onchain data.
Can you delete submissions?
Contest creators can delete or batch delete submissions during the submission and voting periods. Nobody can delete submissions after the contest closes (after the voting period).
I created a contest and want to edit it. Can I update any part of it?
You cannot currently edit contests, but you can set your contest to unlisted (go to your user profile in the upper right and tap the eye icon next to the contest), then redeploy a new contest.
How do I find the contract address for a contest?
Copy the url of the contest. The last string of letters and numbers is the contract address. Every url is formatted as follows: www.jokerace.io/contest/[chain]/[contract-address]
Can I delete a contest?
Contests can’t be deleted.
However, the contest creator can set the contest to unlisted and remove it from the rewards pool. To set it to unlisted, go to your user profile, and tap the “eye” icon. Unlisted contests can still be found at the same url and on the profile of the contest creator (as well as on the blockchain itself), but otherwise will be unlisted on the site.
How does downvoting work?
If you enable downvoting, a downvote will operate the same way as a normal upvote in terms of fees. That is, if you set the contest for people to pay per vote, they'd pay for a downvote just as they would for an upvote.
Due to smart contract limitations, you can't add a rewards pool to a contest that has downvoting enabled. So if you want to reward winners with our rewards pool, you should not turn on downvoting.
Can I verify this contract?
Yes! See Verifying Contracts.
If I delete a submission, how does that affect who can submit?
If you delete a submission, it will open up one more slot for total submissions. So let’s say your contest accepts 100 submissions, and all 100 have been entered. If you delete 1, there will now be room for one more submission (assuming the submission period is still open).
However, the person whose submission you deleted does not get a bonus submission as a result. So if you only let each wallet enter one submission, the player whose submission was deleted cannot enter another submission from that wallet.
I want to input the submissions myself for everyone to vote on—what’s the best way to do this?
First, when you create the contest, just allowlist yourself to submit entries. You can do this by selecting “manual entry” for the submission allowlist, and just copy-pasting your address in the top row.
Second, when you’re creating the contest, just make sure that submitters (ie you) can submit enough entries. On the “customizations” page, tap the “max” button under “how many submissions can each player enter?” This will let you submit as many entries as you like.
Please note, we don’t typically recommend submitting entries yourself. You’ll need to pay to submit them on major chains, and the submitters won’t get onchain reputation or rewards. But it remains an option if you’re in a hurry.
Can voters vote once or multiple times?
Voters can vote as many times as they like—as long as they have enough votes. Decimal voting is not allowed, so a voter with 1 vote could only vote once. A voter with 100 votes, however, could deploy all 100 votes to one entry, or 50 to one entry and 50 to another, or spread 100 votes across 100 entries. They can always return to give more votes to entries as well.
Which chains is JokeRace live on?
You can see the comprehensive list of chains we're live on here.
How can I tell which contests are legitimate?
We feature top legitimate ones on our front page. But if you’re concerned, you can check any user’s profile to see the previous contests they deployed to see the traction they’ve gotten and onchain rewards they offered (and by extension, whether they were legitimate). Projects themselves will typically feature links to contests as well, so you can verify here too.
If for any reason you are concerned about the legitimacy of a contest, please feel free to reach out, and remember that the risk you face is simply in lost fees for submitting or voting in the contest. For that reason, however, we encourage you never to send funds to a rewards pool that isn’t your own.
What are fields?
Fields are exactly what they sound like: fields that contests creators can require players to fill out when entering their contest. But because these fields are all metadata—meaning they can be read permissionlessly by any smart contract onchain—anyone can parse and query the responses in the fields in order to use them as variables to execute their own smart contract logic.
To put that simply, fields enable new ways to handle funding, rewards, and attestations.
When a contest creator adds fields to entries, they effectively require that entrants fill out these fields in the correct format. (The main field in an entry, however, is optional.) Currently there are three formats for additional fields:
- a string (any combo of letters and numbers)
- a number (integer)
- a contract or token address
Here’s a few examples of how you could build new use cases on top of fields:
-
Nominating someone to win a prize: You could hold a contest for anyone to nominate a winner who would earn a prize. Just add a field for players to give the nominee's address, and then easily send rewards to the nominee directly, rather than to the entrant who nominated them.
-
Raising funds for a cause: Let's say you want to raise funds for a nonprofit—but have no money. You could throw a contest for people to nominate a nonprofit by giving its address. And you could then collect submission and voting fees from the contest itself and send these to the winner. The contest itself would fund the donation.
-
Making money from publicly-chosen awards: Now let's say you want to make money while letting the public pick who earns an award, gets to speak at a conference, gets to appear on your podcast, etc. You can let anyone nominate a speaker, and add a field to collect their address. You could then keep the funds from the contest but give credentials to all the nominated winners.
-
Managing a treasury: Contest entrants could describe their proposed treasury management system and submit a field with an associated contract address. The contract for the winner could be executed, fully onchain.
More advanced and abstract games are possible too. What about a contest to decide how many winners should earn the contest’s own rewards? Each entrant could submit a number in a field, with fee splits from entries and voting going into a separate onchain rewards pool. The rewards would then be divided among the top x winners, where x is the number proposed in the winning entry.
Basically, you can build smart contracts on top of contests to execute any kind of logic involving strings, numbers, and addresses, in order to determine allocations, funding, reputation, etc.
All of this can be done programmatically on top of our contest smart contracts.
Allowlists
What kind of allowlists are possible?
You can allowlist any onchain addresses you want, so you can get creative. Ultimately you can just place the addresses in column A of a CSV, the voting power in column B, and upload to our site when you create a contest. So you have full freedom to determine criteria however you want.
Want to save time? We’ve built some presets so that you can just drop the address of an NFT or token, and we’ll allowlist all the voters—no CSV required.
So token-voting is possible?
Absolutely! Token-voting is the easiest option: just drop the token address, and the holders will be allowlisted.
But it’s not the only option. If you want to allowlist based on other criteria, you can handle however you like—as long as you have a list of addresses to share.
How many addresses can I allowlist?
Up to 100,000 addresses can be allowlisted for both submission and voting. You can also let anyone submit entries to your contest or vote on entries in your contest if you like.
Can you allowlist with ENS?
ENS is not currently compatible with allowlists. If you’re manually uploading an allowlist, make sure that all addresses are written out alphanumerically, beginning with “0x”.
Is there a way to capture the allowlist at a later point after the contest is launched?
No, all components of the contest, including the allowlist, must be decided when the contest is created. This is because each contest is a smart contract that you’re deploying to the chain you’re connected to in your wallet—so every component needs to be predetermined.
I’m allowlisting addresses that I got from one chain, but I’m deploying my contest to a different chain. Will these addresses work across different chains?
Yes—with the exception of multisigs. Individual users with hard or soft wallets can use the same accounts on all EVM chains, so if you allowlist one address that you got on one chain, that person will be able to submit or vote on whatever chain you use for your contest. This means you could effectively allowlist token holders on Ethereum Mainnet but have them perform governance entirely on Berachain, for example.
The one exception is multisigs, aka multisignature wallets that are controlled by multiple addresses. These address are not transferable across chains. So if you allowlist a multisig from Ethereum Mainnet for a contest on Berachain, they won’t be able to use this address to submit or vote.
Multisigs are, however, the exception, not the rule.
When I use a preset to allowlist token holders, is there a way to pull a list of everyone who holds that token on all chains?
Unfortunately, there’s no way to query multiple chains at once, so you can only allowlist holders of a token on a given chain. Remember that you can always create a csv of all addresses you’ve personally gathered, however, if you’d like to combine addresses from a number of chains.
I’m trying to use the presets and want to allowlist tokens on another chain that isn’t listed here—is that possible?
Due to API limitations, the presets only support the chains that you see listed when you select a token.
However, the presets just help you save time, and you can always manually allowlist whoever you want. If you’re looking to allowlist tokens on another chain, we recommend going to that chain’s block explorer, looking up the contract for the token, tapping the “holders” tab (or equivalent), and downloading a spreadsheet of the holders. You can then put this into a new spreadsheet with voters in column A and voting power in column B (or in the case of submissions, just submitters in column A). Just export this spreadsheet as a csv and upload it when you create a contest under the appropriate allowlist page.
Monetization
How can I monetize from creating contests?
On the final page of creating a contest, you can set monetization options to charge players for submitting and voting. JokeRace splits these fees with you 50/50, and you can set these as high as you like. (Please note this is only available on major chains and includes a minimum price to set). At the lowest end, a charge helps maintain high-quality submissions and deters bots; it’s comparable to standard fees in many grant processes or festivals. At the higher end, you can charge users higher amounts if the incentives are great enough (see below).
So for example, let’s say you want to create a game show that runs each week. You might start by having relatively low submission fees with low rewards. The next week, you might take your earnings from submissions and put them into a slightly higher rewards pool—justifying a slightly higher submission fee. Rinse, repeat, and over time you can raise rates sustainably.
This is only one option for monetizing. Other communities may want to use contests to give utility to their token or to leverage the data from the contests to get sponsors attuned with their users. Still others might want to get sponsors for the rewards and take a cut.
There are endless ways to monetize contests, some natively on JokeRace’s site, and some off-site as well.
What type of contests do JokeRace frames currently support?
JokeRace frames currently support contests that are anyone can submit or anyone can vote. If your contest is anyone can submit, then you can use frames for the submission portion of your contest; if your contest is anyone can vote, then you can use frames for the voting portion of your contest; and if your contest is anyone can submit and anyone can vote, then you can use frames for every portion of your contest.
What can I submit to a frame?
Frames currently only accept text-based submissions. If you would like to submit media, pleast submit a link to wherever it is being hosted.
How do I make a frame?
- If you'd like to share a submission frame, all you need to do is cast the link to the contest you'd like to share the frame for and it will auto-populate in Warpcast!
- If you'd like to share a voting frame, all you need to do is cast the link to the submission you'd like people to be able to vote with the frame on and it will auto-populate in Warpcast!
Extensions
What are extensions?
Extensions are 3rd party integrations built on top of JokeRace’s protocol that extend the features and functionality of contests. Anyone can build an extension permissionlessly, and we’ll feature select ones on our site that link to the 3rd party’s integration. We want users to discover the services of anyone who has built on top of us.
What should I do if I want to build an extension?
First of all, dm us on twitter! We’d love to hear what you’re up to and see if we can support.
JokeRace is fully onchain, so we have no API: the blockchain itself is effectively our API. You can query and parse and listen to any data you need directly from the chain, as each contest is its own smart contract.
Generally the strongest extensions will include:
- A standalone page for a given contest—or for users to input the url to a contest. This lets us link directly to a page that’s specifically relevant to JokeRace.
- Ample context on the page about how the extension works and what each field means (or, alternately, a link to docs explaining these).
- Support for as many EVM chains as possible.
Not all extensions should look the same, however. We want JokeRace to be able to feed data and metadata into everything from analytics and points platforms to onchain execution services, so our top goal is expanding use cases for partners.
What are examples of extensions?
Current extensions include:
- Assigning roles and powers to winners of contests with Hats Protocol
- Generating insights about players based on their onchain histories with Bello
- Rewarding winners NFTs with Coinvise
Potential future extensions could include:
- Minting winning entries as NFTs
- Deploying capital with parameters set by the winning submission
- Buying back tokens with the fees accrued by the contest
- Resubmitting fees from contest into rewards
- Slashing node operators based on the vote of a contest
- Adding winners to a multisig
- Revoking membership in a community
- Curating data sets to train an AI agent
- Approving an AI agent to take actions onchain
Troubleshooting
I can’t submit or vote even though I should be allowlisted—what’s happening?
Go to “Parameters” on the contest page, download the allowlist, and make sure your address was on it. If not, please file a bug report.
Rewards
Can I withdraw funds from a rewards pool I created?
Yes, the contest creator can always withdraw rewards from the rewards pool, but keep in mind legal liability if you’ve promised rewards to winners.
Can I withdraw funds from a rewards pool I funded?
Only contest creators can withdraw funds of the associated rewards pool. If you are not the contest creator, we highly recommend that you do not fund a rewards pool, as there is no way for you to withdraw funds.
What happens in the case of a tie?
In the case of a tie, all funds will be reverted to the contest creator to distribute manually.
How does funding the prize pool work?
You can fund the prize pool on the “rewards” page or sending ERC20s directly to the contract address on the rewards page.
Who is responsible for KYC verification in contests?
Contest creators are fully responsible for the deployment and ownership of smart contracts that handle contest rewards. This means that any KYC (Know Your Customer) requirements are up to the contest creator’s discretion and are not managed by us. It’s important that contest creators conduct their own due diligence and ensure that their KYC process aligns with any applicable regulations.
How high do rewards do need to be for me to KYC?
Generally, KYC requirements vary by jurisdiction. Because they’re not universal, we recommend that contest creators do your own diligence to confirm compliance with local regulations. JokeRace does not enforce KYC limits directly.
Can I KYC users within the contest?
If you want to KYC players, we recommend adding a field for contestants to respond to where they can link any KYC verification.
If a contestant’s entry is deleted, can they re-enter the contest?
It depends on how many entries a contestant is allowed to enter in a contest. For example, if a contestant is allowed to submit two entries, then they can delete their first and still enter a second. However, if they were only allowed to submit one entry, then they will not be allowed to re-enter after deleting their entry. For this reason, we recommend letting contestants enter twice, just in case they need to delete and re-enter.
What happens if the total number of entries in my contest changes?
If you delete entries from your contest, it opens up additional slots for new entries. For example, if your contest allows 1,000 entries and is completely full, you can still delete 100, and 100 additional entries can be submitted.
If a submission is deleted can it receive rewards?
No, deleted submissions cannot earn rewards—they will be disqualified and other entries will take their place in the ranking in the contest. Please note that submissions can only be deleted while the contest is running (not after).
Do rewards in the rewards pool need to be ERC-20s on the same chain as the contest?
Yes. If you want to reward ERC-20s from another chain, please bridge them over to the same chain as the contest first, and then use them to fund the pool. If you want to reward NFTs, you can do so manually by sending them directly to the winners.
Do rewards in the rewards pool need to be ERC-20s on the same chain as the contest?
Yes. If you want to reward ERC-20s from another chain, please bridge them over to the same chain as the contest first, and then use them to fund the pool. If you want to reward NFTs, you can do so manually by sending them directly to the winners.
Circuits
Circuits are a mechanism for contest creators to direct earnings to independent smart contracts that perform onchain transactions. That means that whenever a player in a contest submits, votes, or performs any kind of action generating earnings, they can simultaneously perform any onchain action, such as buying tokens, minting collectibles, providing liquidity, or earning credentials—all as part of playing in a contest.
Check out the technical documentation page for more in-depth information.
Use Cases
How can I use JokeRace for points and reputation?
One easy way to imagine JokeRace is as a ledger of user preferences and attestations. Whenever one person votes for an entry, they’re expressing a preference for it—and attesting to its value. Likewise whenever a person who has submitted an entry earns a vote, they’re earning an attestation that their entry was valuable to the community that voted.
What this means is that even if you lose a contest, you still win—because you’re earning reputation. For example, if a community designed a simple point system that offered one “point” for every vote a person received, they would be able to gauge the value that this person had contributed to the community—by merely adding up the onchain votes over time. With a legitimate voterpool, this system couldn’t be botted or overrun by airdrop farmers. Submitters would actually have to create value for the community to earn value in return.
But this is just one example. In fact, because JokeRace is fully onchain, you can use any data point from contests to determine your own system of rewarding reputation. We actually created a Flipside dashboard you can use if you want to input your contest here.
Some of our users have created Dune dashboards as well with queries. Feel free to fork any of these for your own use cases.
Is JokeRace a quests platform?
JokeRace is a contests platform, not a quests platform—though it is actually quite complementary with most quests platforms.
Quests platforms offer incentives for anyone who performs a series of tasks with a service.
Contests only offer rewards to winners, who are selected by voters.
Even then, contest creators have the option whether or not to add a rewards pool to their contest and may elect to run a contest without one (if, for example, they are using a contest to make a decision, or if they want to offer other kinds of rewards besides tokens).
While quests platforms are quite good at getting a large quantity of users and bots to perform the same action, contests are good for getting quality users to compete with original entries.
And this is why quests and contests can be complementary. For example, you might just allowlist anyone to submit or vote who’s performed a quest—incentivizing them to perform the quest in order to participate in the contest for greater rewards. Or you might create a quest to incentivize people to submit or vote in a contest to increase engagement. Finally, you might use the metrics from a contest to determine who your quality users are—for example, giving one “point” for each vote that submitters have gotten across your contests. You could then use these metrics to allowlist future quests to prevent bots from participating.
I’ve already collected applications, nominations, or submissions from another site. Is there a way to import them into a contest for others to vote on?
You can always set up a contest that only you submit into—if you like, you can even allowlist the submissions so that only you can submit.
However, we strongly recommend letter users submit directly to get the full benefits of onchain contests, including:
Onchain reputation (ie every vote they get could be a point attesting to value of their project) Rewards for winners onchain Monetization (you can set submission fees that we split with you 50/50)
If you do choose to submit directly, you’ll need to cover the submission fees for the contest yourself and will lose the advantages above.
How can a contest fund itself?
After you create a contest, you can create a rewards pool as well on the contest’s rewards page. When you create the rewards pool, just turn on the toggle on the final screen to send all earnings to the rewards pool.
How does this work? Well, JokeRace split all fees from users with contest creators. So when you turn on self-funding, instead of collecting your fees, you’re choosing for them to go directly into the rewards pool. That means that 50% of all fees go back into rewards.
This is the magic of programmable money.
What are the benefits of self-funding?
First, you can enable financial incentives for contests without putting up any money of your own. This can be a powerful tool to incentivize participation.
But second, this creates a flywheel. The more people that participate, the higher the rewards go. And the higher the rewards go, the more incentive there is to participate.
Third, it adds extra incentives for entrants to get as many votes as possible. The more people that vote for them, the more money they stand to earn—and the more likely they are to win. This can create dynamic competitions with players.
Finally, in anyone-can-vote-contests, it can help prevent arbitrage opportunities that accompany traditional rewards. For example, in an externally funded contest, players may be incentivized to buy up votes in order to get the rewards. If the prize pool is $500, for example, they may want to spend hundreds of dollars to try to win in order to earn. This can be a very fun game of its own, but self-funding helps avoid it. Since users only get back 50% of what they put in, they’re much less incentivized to try to arbitrage a prize pool (since even if it’s quite large, that’s likely due to voting on other entries).