project screenshot 1
project screenshot 2
project screenshot 3

Chaos Distribute

Chaotically distribute NFTs, Tokens across many chains in a dice/array format where users submit their desires into each slot and the server chooses a slot every 15ish minutes

Chaos Distribute

Created At

ETHGlobal Tokyo

Winner of

🏊‍♂️ Polygon — Pool Prize

Project Description

Getting testnet and real tokens to use without any introduction to crypto is a race sometimes – for only small amounts of tokens. Why not make it a game? Users can fill slots on a board for 2 minutes and the computer within a semi-random 15 minute interval will select one of those entries on the board to get tokens. I plan to integrate social proof to avoid farming, but for the hackathon sake we make users login to verify their wallet to receive funds and prevent users signing too many times.

While many projects attempt to verify security and trust in a multisig and wallet environment, this project turns this concept on its head: what if the wallet itself could do lots of random actions and users with no value in their wallets can submit proposed transactions such as getting some tokens or NFTs. Around every 5 minutes, the server will pick a random square on the proposal grid and execute it through the user's chosen chain and wallet either directly on the chain or via the chain's multisig.

The backend here uses gnosis safe SDK and multisigs to collect tokens then a simple forwarder address to submit transactions to the safe. If something happens to the forwarder, assets are safe and can be recovered from another address associated with the safe to remove the forwarder's permission and fix the issues.

Supported chains: Mumbai / Polygon Goerli / ETH Gnosis Chain Mantle

How it's Made

This project uses a standard web front-end interface. Originally, I wanted the wallets not to be virtual multisigs but instead owned by users and able to do any action. After some thinking and barriers with Metamask SDKs I decided to go a more familiar route – scripting gnosis safe wallets that users can login to and chaotically propose transactions to.

System architecture: [ Redis Server ] A redis server stores all previous transactions and upcoming proposed transactions, along with handling user timeouts.

[ Front-end Client & API ] Interfaces with the user and the redis server. Can be found in client/

[ Back-end Job Runner API ] This runs the 5 minute interval cron job. Can be found in server/

[ NFT ] This is the NFT contract users can win. Can be found in nft/.

Used APIs: Connect Wallet / WalletConnect v2 Ethers Next.js Safe SDK NFT (ERC721)

background image mobile

Join the mailing list

Get the latest news and updates