project screenshot 1
project screenshot 2
project screenshot 3

3Dict

Own Your Predictions on a mostly-decentralized platform for community-sponsored prediction games, incentivizing creation of fun for everyone.

3Dict

Created At

ETHOnline 2024

Project Description

In predictions version 1, what an “expert” decided got published – it was a “read” model for most.

Predictions version 2 added “post what you think in comments!” to make it “read-write”.

In Predictions version 3, predictors and framers are accountable for the results- that is, they own the results, in a read-write-own model. This project takes Predictions version 3, brings the 3 around to the first E, and shortens it to 3Dict.app.

3Dict is a platform for community-led prediction games, where you get to own your predictions.

There is a platform level at the root of the application, and a platform host. On the platform, you can list an Event, for example corresponding to a professional sports game. Anyone can list on testnet, while only whitelisted partners can list an event at mainnet launch, to help address regulatory questions. The event lister gets to set event attributes and appoint referees for the game, who are uniquely empowered to resolve questions, freeze them, lock them, or mark them unresolvable which penalizes the asker.

Anyone can co-sponsor any event on-chain for a minimum amount currently set to $100, which goes to the platform owner. Co-sponsors are clearly listed within the game, with top co-sponsors getting more prime spots especially on mobile displays, and co-sponsors proportionally split a fraction of the revenue from question sponsors.

Though blacklist and whitelist options are available, the default within a game allows anybody to sponsor and post a multiple-choice question which will have a definite answer but doesn’t at the time the question is asked. For example, a question about which team will be ahead at halftime has options for each team, a tie, and one for the game getting rained out first. Sponsoring a question has a lower barrier, currently set to $5, but requires a 10x refundable stake that deters asking bad or unresolvable questions, as judged by the referees. Slashed stake funds go into a pool for funding public goods, for example through Gitcoin, to help align incentives on good questions. Anybody can co-sponsor a question and question sponsors proportionally split a small fraction of players’ withdrawals, which add up to collectively match what gets put in.

Players predict by putting tokens into one or more options according to the player’s estimate of which option or options they think are likely to win. As more information becomes available, the relative weights of options corresponding to their probabilities will change; the prediction market dynamics let you lock in gains or limit losses even well before the question is fully resolved, and referees don’t actually have to resolve every single question.

If someone proposes a really exciting question at a popular event, that’ll attract a lot of engagement and grow the value of the pool split by question sponsors, incentivizing greater question sponsorship. That in turn increases the value of the pool split by event sponsors, attracting more event sponsors and increasing the value to the platform and making it a more attractive investment prospect.

How it's Made

The project was prototyped with Scaffold-ETH, using Hardhat for Solidity smart contracts and a Next.JS project with TypeScript, React, and Tailwind CSS for the frontend, which can use decentralized hosting once it’s stabilized. Tableland Basin is intended for object storage of event and sponsor images.

Unfortunately, it’s only partially completed due to restarting from a blank slate halfway through. After getting some negative feedback on my initial plans at the first project feedback session, I decided to fail fast and revisited the sponsor list, coming up with a new idea with a great set of potential sponsor integrations, inspired especially by Chilliz fan tokens as well as cross-chain actions, confidential compute, and much more. I got most of the functionality designed and implemented most of the on-chain backend logic in Solidity smart contracts.

The initial concept emphasized integration with Chiliz fan tokens but the code works with arbitrary ERC-20s and could fairly easily be extended to work with other token standards. There are some open regulatory questions for use of stablecoins representing real money, which could be resolved through partnerships. Its unique incentive structure aligns incentives for fun for everyone.

I also intended to use Envio Hyperindex to help speed up the interface rendering, Web3Auth for easily onboarding non-crypto users, LayerZero and Chainlink CCIP for cross-chain action as well as Chainlink price feeds for accepting a variety of tokens and oracles for possibly resolving some questions, XMTP for messaging and notifications, confidential compute supports like Lit or Nillion or Fhenix as DAO support for referee team voting, Galadriel for agents that help players limit losses and lock in gains, Kinto for the built-in KYC and sybil resistance that makes blacklists and per-question participation caps more meaningful, Hedera for fast deterministic finality, DIMO for integration at professional car racing events. Deployment on Morph and Starknet also offered their own useful benefits. The Stackr Labs micro-rollups support also seemed interesting and potentially relevant, but I started with scaffold-eth due to greater familiarity and ability to move more quickly.

However, external time demands then came up and I didn't have time as a solo hacker to complete the desired sponsor integrations or even get the designed front-end built; Scaffold-ETH provides some helpful defaults but getting to the intended user experience would take more work. I think there is potential and would like feedback, positive or negative. There’s still plenty of work to be done, but I’d love to get feedback (positive or negative) and any introductions you think could be helpful, because it’s really hard to get development hours priority for an unfunded project.

background image mobile

Join the mailing list

Get the latest news and updates