4 KiB
4 KiB
Technical Architecture
System Overview
KrAIken consists of three on-chain contracts, a real-time indexer, and two web frontends.
┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐
│ Kraiken │────▶│ Stake │ │ LiquidityManager │
│ (ERC20) │ │ (Staking) │ │ (Pool Management) │
└──────────────┘ └──────────────┘ └──────────────────────┘
│ │ │
└────────────────────┼────────────────────────┘
│
┌───────▼────────┐
│ Ponder Indexer │
│ (GraphQL API) │
└───────┬────────┘
│
┌─────────────┼─────────────┐
│ │
┌───────▼────────┐ ┌───────▼────────┐
│ Landing Page │ │ Staking App │
│ (Vue 3/Vite) │ │ (Vue 3/Vite) │
└────────────────┘ └────────────────┘
Smart Contracts
Kraiken.sol (ERC20 Token)
- Standard ERC20 with controlled minting by LiquidityManager
- 20% of supply reserved for staking pool
- Min stake fraction: 1/3000 of total supply (~399 KRK at current supply)
- Tracks
previousTotalSupplyfor staking calculations - Version field for indexer compatibility
Stake.sol (Staking Positions)
- Creates/manages staking positions with self-assessed tax rates
- 30 discrete tax rate tiers: 1%, 3%, 5%, 8%, 12%, ... up to 97%
- Snatching: higher tax rate can displace lower positions
- 3-day minimum hold (
TAX_FLOOR_DURATION) before snatch - Position payout at market value when snatched or unstaked
LiquidityManager.sol (Pool Management)
- Manages Uniswap V3 concentrated liquidity position
- Recenters liquidity based on VWAP and market conditions
- Emits
EthAbundance,EthScarcity,Recenteredevents - Optimizer V3: reads staking sentiment to adjust parameters
Indexer (Ponder)
Ponder indexes on-chain events into PostgreSQL via GraphQL:
- Stats: Protocol-wide metrics (supply, reserves, fees)
- Positions: Individual staking positions with status
- Holders: Token balances with cost basis tracking
- Recenters: Liquidity management history
- Ring Buffer: 7-day hourly snapshots of ETH reserve, mints, burns, tax
Key Endpoints
- GraphQL:
http://localhost:42069(proxied at/api/graphql) - Health:
http://localhost:42069/health - Ready:
http://localhost:42069/ready(200 when historical sync complete)
Web Frontends
Landing Page (/)
- Marketing + protocol health dashboard
- LiveStats component with real-time metrics
- Wallet connect + holder card for returning users
- Three variants: defensive, offensive, mixed
Staking App (/app/)
- Full staking dashboard
- Position management (stake, unstake, adjust tax)
- Wallet P&L with cost basis tracking
- Charts and protocol statistics
Shared Package (packages/web3/)
createHarbConfig()— wagmi config with Base chain + connectorsuseTokenBalancecomposable- Re-exports of wagmi composables for consistent imports
Infrastructure
- Chain: Base (Ethereum L2), chainId 8453
- Local dev: Anvil fork of Base Sepolia (chainId 31337)
- Proxy: Caddy reverse proxy on port 8081
- CI: Woodpecker CI with pre-built Docker images
- Source: codeberg.org/johba/harb