Fundraising is hard and current options for NGOs, and international organizations are far from perfect. Trust dynamics, third party bureaucratic intermediaries, and distribution processes aren't optimal solutions.

Humans like taking risk and are not always good at calculating odds. Raffles therefore offer an opportunity to fundraising entities for theoretically unlimited ROI.

In 1993, Johann Jenson won a brand spanking new Sony Walkman for selling the most raffle tickets in his school fundraiser. He walked door to door in Saskatoon, Saskatchewan convincing neighbours that they should trust an honest 10 year old intermediary to broker their affinity for raffles.

16 years later he spent 2 full days drafting, rewriting, and getting a thank you letter approved for the Deputy Minister of Foreign Affairs of France from his desk at the UN Environment programme. The funds took 2 years to arrive.

Now that digital scarcity has arrived DiamondBlue can enable decentralized raffles for crypto assets and non-fungible collectibles.

What it does

DiamondBlue is a decentralized raffle builder. Building on crypto collectible markets, the DiamondBlue team wants to prove that fundraising can be simpler and more effective.

Built mobile-first for Toshi using an Aragon DAO, DiamondBlue offers non-profits the opportunity to maximize fundraising ROI through raffle competitions.

Set up is fast, and pretty intuitive.

There are two major users flows to consider. The "fundraiser" and the "player". To get started, the fundraiser fills in a few essential details, starting with the title of the raffle, the organization name, and logo. Requesting organization name and logo is meant to discourage personal use, as the intention is to support reputable organizations in their fundraising efforts.

Next, the fundraiser selects the asset from their Toshi wallet to raffle it off.

They can then insert their sales pitch in the description, and set the parameters for the raffle such as duration, price per ticket, tickets in circulation, and a minimum threshold to cancel the raffle in case not enough tickets are sold.

These parameters are entered into the Aragon DAO, then executed when the the raffle ends. The random process depends on the block number right now which is not secure for production. The random process can be improved with a future set block number and block hash for a future block so it is more unlikely that a malicious miner could influence the outcome of the raffle.

How we built it

Solidity Smart Contracts powered by the AragonOs framework that interact with ERC-721 tokens using open zepellin libraries. Factory Contract creates Smart Contracts for each raffle that is linked to a token that will be raffled and the balance goes to the foundation/creator of the raffle once the winner is picked.

Challenges we ran into

We did not have an expert in FrontEnd UI so most of us are backend solidity guys and a UX designer. Truffle issues with the dev environment and overall tools for debugging Smart Contracts are complicated right now.

Accomplishments that we're proud of

Incorporated AragonOS and Open Zepellin libraries, frontend design aims to be responsive/mobile first.

What we learned

AragonOS libraries and ERC-721 interface.

What's next for DiamondBlue

We would like to continue with development and release a BETA version of the raffle platform to test with real users at We're starting with ERC-721 tokens now, but in future any cryptocurrency or physical asset such as art, real estate, or services could be raffled using DiamondBlue.

Built With

Share this project: