Architecture
Gatoll separates responsibilities across four layers, keeping settlement trustless while eligibility remains flexible.
The four layers
Section titled “The four layers”Contracts. A PoolFactory deploys one pool per Loot as a minimal-proxy clone. Pools escrow rewards, enforce the claim rules, compute allocations, and handle reclaim. This layer is the source of truth for funds. See smart contracts.
Verifier (backend). The eligibility oracle. It authenticates users, evaluates Gates, and signs EIP-712 claim vouchers. It holds no funds and cannot move them; it can only authorize a claim the contract independently checks.
Indexer. A per-chain service that scans pool events, including creation, contributions, claims, and reclaims, then writes them to a queryable store with confirmation and reorg handling. Product surfaces read campaign state from the indexer instead of hammering RPC, and each Loot page reflects on-chain reality with a clear “pending → confirmed” status.
Embedded wallet. An extension-free wallet, described in identity & wallet, that lets participants authenticate and claim without a browser extension. It is the user-facing key layer that makes zero-friction claiming possible.
Data flow
Section titled “Data flow”create ──▶ PoolFactory deploys pool ──▶ indexer confirms ──▶ Loot goes live fund ──▶ contribute() (Pending) ──▶ indexer records contributions claim ──▶ pass Gates ──▶ verifier signs voucher ──▶ pool.claim() ──▶ transfer end ──▶ reclaim() ──▶ contributors recover unclaimed fundsOn-chain vs off-chain
Section titled “On-chain vs off-chain”This split is the heart of the design:
| Concern | Where | Why |
|---|---|---|
| Custody & payout | On-chain (contracts) | Must be verifiable and tamper-proof forever |
| Allocation math | On-chain | The split cannot be altered after launch |
| Eligibility (Gates) | Off-chain (verifier) | Needs Web2 signals and fast iteration |
| Campaign metadata, social | Off-chain (backend) | Rich, mutable, and not value-bearing |
| Read models | Indexer | Fast queries that can be reconciled against chain events |
Eligibility is the only thing the protocol trusts off-chain, and even then the verifier can only authorize. The contract still decides who can claim, how much they receive, and whether the claim has already been used. Everything that moves value is on-chain and auditable.
Multichain
Section titled “Multichain”A single backend serves multiple chains, keyed by chain ID, with a separate verifier key and indexer per chain. The same contracts deploy to each network independently. Gatoll currently supports Ethereum mainnet and BNB Smart Chain mainnet; see networks.