Architecture
Gatoll separates concerns across four layers so that settlement stays trustless while eligibility stays flexible.
The four layers
Section titled “The four layers”Contracts. A PoolFactory deploys one pool per Loot as a minimal-proxy clone. Pools escrow the 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 will independently re-check.
Indexer. A per-chain service that scans pool events — creation, contributions, claims, reclaims — and writes them to a queryable store with confirmation and reorg handling. Product surfaces read campaign state from the indexer instead of hammering RPC, and a Loot’s page reflects on-chain reality with a clear “pending → confirmed” status.
Embedded wallet. A pluginless wallet (see 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”The 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 reconcilable 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, how much, and once. 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 launches first on BNB Chain; see networks.