02 Core Philosophy
"It's not about who has the most money — it's about who has the most intelligence."
Traditional token minting relies on either capital or hashpower (PoW). AIPOW introduces a third paradigm: Proof-of-Intelligence (PoI). The contract generates challenges, AI solves them, and only correct answers unlock minting.
03 Tokenomics
Token NameAI Proof-of-Intelligence Token
SymbolAIPOW
ChainBase (8453)
Decimals18
Max Supply21,000,000 AIPOW
Pre-mineZERO
Team AllocationZERO
Phase 1 — Mint + Auto LP (30%)
Total6,300,000 AIPOW
Per Mint200 AIPOW (100 → minter, 100 → LP)
Mint Price0.1 USDC
Max Mints31,500
Per Address LimitUnlimited
CooldownNone
LP PairAIPOW / USDC
LP LockPermanent 🔒
Total LP Injection3,150 USDC
100% of the 0.1 USDC from each mint goes directly into the AIPOW/USDC liquidity pool. No team cut, no treasury.
Why 0.1 USDC Instead of Free Mint?
Design Philosophy: Phase 1 requires 0.1 USDC per mint to ensure sufficient liquidity from the start, rather than relying on users to voluntarily add liquidity later.
❌ Free Mint ProblemUsers mint for free → no initial liquidity → token can't be traded → project fails
✅ Auto-LP SolutionEvery mint automatically adds liquidity → guaranteed tradability → fair launch success
Liquidity Guarantee31,500 mints × 0.1 USDC = 3,150 USDC + 3,150,000 AIPOW in LP
Key Insight: The 0.1 USDC isn't a "cost" — it's automatically converted into liquidity that you partially own. This ensures the token is immediately tradable when Phase 1 completes, without depending on voluntary LP providers.
Phase 2 — Hourly Pool · Quarterly Halving (70%)
Automatically activates after Phase 1 completes (31,500 mints). Trading opens simultaneously.
Total14,700,000 AIPOW
Participation Fee0.01 USDC
USDC DestinationBeneficiary wallet
Duration1 year
DistributionFixed hourly output, split among participants
Rate Limit1 mint per 10 min (max 6 per hour)
Unclaimed OutputBurned
Halving Schedule:
QuarterTotal OutputPer Hour
Q1 (Month 1-3, 91 days)7,840,0003,589
Q2 (Month 4-6, 91 days)3,920,0001,794
Q3 (Month 7-9, 91 days)1,960,000897
Q4 (Month 10-12, 92 days)980,000443
Transfer Restrictions
During Phase 1All external transfers disabled
Allowed OperationsMint + contract addLiquidity only
After Phase 1Trading opens automatically
PurposeEnsures LP ratio stays 1:1, no loose tokens
Contract Autonomy
After deployment, renounceOwnership() is called to permanently relinquish all privileges:
- Phase transition: automatic (Phase 1 complete → Phase 2)
- Halving: automatic (calculated from block.timestamp)
- LP: permanently locked in contract 🔒
- Fully trustless, no human intervention possible
04 Challenge Mechanism
Challenge Generation (On-Chain)
The contract generates a challenge seed from the following parameters:
seed = keccak256(
abi.encodePacked(
msg.sender,
totalMints,
block.timestamp / 300 // rotates every 5 minutes
)
)
The seed determines challenge type and parameters. Challenges are fully deterministic — anyone can compute the same result offline with the same inputs.
Architecture: 8 Core Algorithms × 4 Difficulty Levels = 32 Types
The contract supports 8 core mathematical algorithms, each with 4 difficulty levels (corresponding to 4 phases), totaling 32 challenge types. Difficulty is controlled by the size of the modulus p.
Type numbering: challengeType = baseAlgorithm + difficulty × 8
DifficultyModulus RangeType IDs
🟢 Easy (Phase 1)p < 10,000Type 0-7
🔵 Medium (Phase 2)p < 100,000Type 8-15
🟠 Hard (Phase 3)p < 1,000,000Type 16-23
🔴 Extreme (Phase 4)p < 10,000,000Type 24-31
The 8 Core Algorithms
Algorithm 0 — Modular Linear Equation (Type 0/8/16/24)
Find x: (a·x) ≡ b (mod p). Generated by picking x first, computing b = a·x mod p. Guaranteed solvable.
Algorithm 1 — Discrete Logarithm (Type 1/9/17/25)
Find x: g^x ≡ h (mod p). Generated by picking x first, computing h = g^x mod p. Solved via Baby-step Giant-step.
Algorithm 2 — Polynomial Root (Type 2/10/18/26)
Find x: ax³+bx²+cx+d ≡ 0 (mod p). Generated by picking root r, computing d such that f(r)=0.
Algorithm 3 — Matrix Determinant (Type 3/11/19/27)
Given 3×3 matrix M, compute det(M) mod p. Answer is uniquely determined.
Algorithm 4 — Chinese Remainder Theorem (Type 4/12/20/28)
x ≡ a (mod c), x ≡ b (mod d). Find minimum x. Generated by picking x first, computing a and b.
Algorithm 5 — Quadratic Residue (Type 5/13/21/29)
Find x: x² ≡ b (mod p). Generated by picking x first, computing b = x² mod p. Solved via Tonelli-Shanks.
Algorithm 6 — Fibonacci Mod (Type 6/14/22/30)
Given n, compute Fib(n) mod p. Answer is uniquely determined.
Algorithm 7 — Binomial Coefficient (Type 7/15/23/31)
Given n, k, compute C(n,k) mod p. Solved via Lucas' theorem.
Security Design
All challenges are guaranteed solvable: every algorithm uses a "generate answer first, construct problem second" approach, mathematically ensuring no unsolvable challenges exist.
- Front-run proof: challenges include msg.sender — each address gets a unique problem
- Timed rotation: block.timestamp / 300 — challenges rotate every 5 minutes
- Progressive difficulty: modulus grows from 10K to 10M as minting progresses
Why These Challenges?
- AI-friendly: well-defined mathematical computations, solvable in seconds by AI
- Human-unfriendly: manual modular arithmetic and discrete logarithms are painful
- On-chain verifiable: contract only needs to verify the answer, not re-solve the problem
- Brute-force resistant: search space is large enough, but trivial for AI
- Deterministic: same seed always produces the same challenge with a unique answer
05 Verification Flow
function getChallenge(address solver) public view returns (
uint8 challengeType,
uint256 a, uint256 b, uint256 c, uint256 d, uint256 p
);
function phase1Mint(uint256 answer) external;
function phase2Mint(uint256 answer) external;
- Call
getChallenge(myAddress) to retrieve current challenge parameters
- Compute the answer off-chain
- Phase 1: call
phase1Mint(answer) — requires 0.1 USDC approval
- Phase 2: call
phase2Mint(answer) — requires 0.01 USDC approval
- Contract verifies answer → mints on success
Front-Running Protection
- Challenge includes
msg.sender — each address gets a different problem
- Includes
block.timestamp / 300 — challenges rotate every 5 minutes
- Even if someone sees your answer, it won't work for their address
06 Minting Flow (User Perspective)
Phase 1
1Get Challenge
Call getChallenge(myAddress)
→ Returns: type=1, g=7, h=2891, p=9973
2AI Solves
Find x such that 7^x ≡ 2891 (mod 9973)
→ Answer: x = 3847
3Submit Mint
Approve 0.1 USDC → call phase1Mint(3847)
→ Contract verifies: 7^3847 mod 9973 == 2891 ✓
4Result
100 AIPOW → your wallet
100 AIPOW + 0.1 USDC → LP pool
Phase 2
1Get Challenge
Call getChallenge(myAddress)
→ Retrieve current challenge parameters
2AI Solves
Compute the answer off-chain
3Register Participation
Approve 0.01 USDC → call phase2Mint(answer)
→ Registers your participation for this hour
4Claim Reward
After the hour ends, call phase2Claim(hourId)
→ Receive your proportional share of hourly output
07 Difficulty Scaling
Minting progress determines challenge difficulty:
PhaseMint ProgressTypes / Modulus Size
Phase 10 – 25%8 types (0-7) · p < 10,000
Phase 225% – 50%16 types (0-15) · p < 100,000
Phase 350% – 75%24 types (0-23) · p < 1,000,000
Phase 475% – 100%32 types (0-31) · p < 10,000,000
Progressive difficulty means: early participation has a low barrier — basic AI scripts can solve the challenges. Later phases require more computational power. But challenges always remain solvable for AI, while being impractical for humans.
08 Contract Architecture
AIPoWToken.sol
├── ERC-20 Standard Implementation
├── Transfer Restrictions (disabled during Phase 1)
├── Challenge Generator (pure view functions)
│ ├── getChallenge(address) → challenge parameters
│ ├── 8 core algorithms × 4 difficulties = 32 types
│ └── verifyAnswer(address, uint256) → bool
├── Minting Logic
│ ├── phase1Mint(answer) — 0.1 USDC + solve → mint + LP
│ ├── phase2Mint(answer) — 0.01 USDC + solve → register
│ └── phase2Claim(hourId) — claim hourly share
├── LP Management
│ ├── Auto-create AIPOW/USDC pair
│ ├── Phase 1: addLiquidity on every mint
│ └── LP permanently locked 🔒
├── Math Utilities
│ ├── modExp, nextPrime, isPrime
│ ├── matrixDet, fibMod, combMod, modInverse
│ └── Difficulty scaling logic
└── Permissions
├── startPhase2() (onlyOwner, normally auto-triggered)
└── renounceOwnership() (irreversible)
09 Risks & Mitigations
RiskMitigation
Pre-computed answersSeed includes msg.sender + timestamp; unique per address per 5 min
Same challenge, multiple submittersSeed includes msg.sender; each person gets a different problem
Flash loan attacksMinting requires USDC payment; no arbitrage vector
Contract bugsThorough testing + verification; simple minting logic
Low participationLow barrier (0.1 / 0.01 USDC); AI community outreach
MEV front-runningAnswers are bound to msg.sender; front-running is useless