In short
An on-chain draw engine in which entries, the draw and the settlement are resolved by smart contracts deployed across seven EVM networks. The difficult problem is not generating a random value. It is generating one that neither the operator nor the block producer can influence, and that any participant can verify after the fact without extending trust to either. Every other element of the system is downstream of resolving that correctly.
Mandate
- A draw whose outcome no party can influence, the operator included
- Verification available to any participant without privileged access
- A single engine deployed across multiple EVM networks
Constraints
- Trust
- Operator excluded
- Verification
- Public, after the fact
- Networks
- Seven EVM chains
- Resolution
- In contract
Architecture
Identifying the party that must be excluded
In a conventional draw the participant extends trust to the operator, and the regulatory apparatus surrounding gaming exists largely to make that trust enforceable. Moving resolution on-chain is commonly described as removing the requirement for trust. That is half accurate. Implemented naively it relocates the requirement instead of removing it.
The naive implementation derives its result from a value available within the contract, typically a block hash or timestamp. Each of those is selected or influenced by whichever party produces the block. A producer with visibility of the prize can evaluate candidate blocks until the outcome is favourable, and the participant now extends trust to a party they cannot identify, without the accountability the operator carried.
The requirement is therefore precise. The winning value must be unknowable to every party at the moment of commitment, and reconstructible by any party once resolution has occurred. Those two conditions define the engine's design, and they are why the randomness question is settled before anything else is written.
Contract custody of the prize
A demonstrably fair resolution has no value if the operator retains discretion over settlement. Entries accumulate within the contract, and settlement is a contract function executing against the resolved outcome, not an operator instruction issued subsequently on the basis of it.
This collapses two separate questions into one that a block explorer answers. Not whether the draw was fair and whether settlement will occur, but what the contract records as having happened.
Portability across seven networks
The engine operates on Ethereum, Polygon, BNB Chain, Avalanche, Arbitrum, Optimism and Base. Multi-chain deployment is frequently presented as a marketing surface and does function as one, but the engineering content is substantive. Gas economics differ by two orders of magnitude across that set, finality assumptions differ, and the randomness sources available differ by network.
Portability therefore has to be a property of the design, not a copying exercise. A mechanism establishing the outcome cannot be one that holds only on the network it was authored against, since the fairness argument would then weaken silently on six of seven deployments while the contract continued to execute.
Decisions, and what they displaced.
The build is the straightforward half to describe. Below are the points at which the architecture could reasonably have gone another way, each recorded with the option that was rejected and the reasoning that rejected it.
- 01
Resolution executed within the contract
Instead ofOff-chain resolution with on-chain settlement
An off-chain draw settled on-chain is a conventional draw with additional steps. It presents as trustless and publishes a commitment, while still requiring the participant to trust that the value behind the commitment was selected before the entries were known rather than after.
- 02
Exclusion of producer-influenced values from the outcome
Instead ofDerivation from block data
Block hashes and timestamps are the most accessible randomness within the EVM and the reason most on-chain draws are not fair. The party selecting the block can evaluate alternatives, and the incentive to do so scales directly with the value at stake.
- 03
A single portable engine across seven networks
Instead ofA per-network implementation
Seven implementations produce seven audit surfaces and seven opportunities for the fairness property to hold on the network it was tested against while failing silently elsewhere.
Delivered
- Draw contracts deployed across seven EVM networks
- Live production operation
- Per-draw public verification against on-chain state
Stack
Chain
- Solidity
- EVM
- Multi-network deployment
Client
- Web application
- Wallet connection
Related capabilities
Related reading
Next case
An investment platform on both stores
Confidential