SYSTEM DESIGN

Mainnet architecture

Circulate separates launch authorization, metadata storage, token creation, reward custody, automated execution, holder indexing, and public reporting so each layer has a narrow responsibility and a clear trust boundary.

System layers

01Website and wallet

Collect token and reward configuration, display the review, and request local wallet signatures.

02Metadata service

Upload the token image and JSON metadata to IPFS before the creation transaction is requested.

03Pump.fun

Create the token, run the bonding curve, handle graduation, and maintain the official creator-fee lifecycle.

04Reward Router

Maintain project PDAs, allowed reward mints, vault rules, thresholds, round state, and claim protection.

05Keeper, indexer, and database

Schedule rounds, resolve fee paths, submit bounded transactions, build finalized snapshots, and retain public evidence.

Authority boundaries

AuthorityPermitted actionsBoundary
Launcher walletApprove metadata, pay launch costs, and sign the Pump.fun transactionNo key material leaves the wallet
Circulate serverValidate requests and return serialized transactionsCannot sign as the launcher
Project PDAAuthorize configured vault and round operationsHas no private key and cannot sign arbitrary messages
Keeper walletPay gas and invoke allowed program instructionsCannot freely withdraw PDA-owned funds
Upgrade authorityApply reviewed program upgradesGoverned separately from daily keeper operation
Graduated tokens

Before collecting fees, the keeper resolves the current Pump.fun state. Bonding-curve projects use the creator-vault path; graduated projects use the official PumpSwap creator-fee flow.

Data and verification model

Solana programs cannot efficiently enumerate every holder. Circulate therefore builds holder snapshots off-chain from finalized RPC data and commits a Merkle root on-chain. Anyone can independently recompute the eligible set and allocation, while the program prevents a committed round from exceeding its purchased reward amount or paying one entitlement twice.