- **Bug**: `_positionEthValue` now sums both the ETH component and the KRK component (converted to ETH via `FullMath.mulDiv` at current sqrtPriceX96) so `lm_eth_total` correctly reflects LM TVL for all price ranges (below/in/above range). - **Bug**: `recenter()` return value (`bool isUp` — price direction) is now captured in `_lastRecenterIsUp` state variable and emitted as `"recenter_is_up"` in every snapshot. Note: `recenter()` reverts on failure; `false` means price moved *down*, not a no-op. - **Bug**: Discovery position now emits `"ethValue"` in its snapshot JSON object, matching the floor and anchor fields for symmetric automated parsing. - **Warning**: `IStake.snatch` interface parameter renamed `taxRateIndex` → `taxRate` to match the actual `Stake.sol` signature (the value is a raw rate, not a lookup index). - **Warning**: Unknown op codes in the JSONL file now emit a `console.log` warning instead of silently skipping, catching typos in attack sequences. - **Nit**: `_setup()` now wraps 9 000 ETH (up from 1 000) to cover heavy buy sequences that would otherwise exhaust the adversary's WETH. - **Nit**: `_computeVwapTick` documents the int128 overflow guard and its tick=0 sentinel meaning so callers can distinguish "VWAP unavailable" from tick zero. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| .github/workflows | ||
| .husky | ||
| analysis | ||
| lib | ||
| script | ||
| src | ||
| test | ||
| .claude-code-supervisor.yml | ||
| .gas-snapshot | ||
| .gitignore | ||
| .lintstagedrc.json | ||
| .secret.local | ||
| .solhint.json | ||
| .solhintignore | ||
| AGENTS.md | ||
| deployments-local.json | ||
| foundry.toml | ||
| hAIrberger.md | ||
| lcov.info | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| remappings.txt | ||
| UNISWAP_V3_MATH.md | ||
KRAIKEN Onchain
Solidity contracts for the KRAIKEN protocol. Built with Foundry.
Contracts
| Contract | Description |
|---|---|
Kraiken.sol |
ERC20 token with mint/burn controlled by LiquidityManager. VERSION=2. |
LiquidityManager.sol |
Three-position Uniswap V3 strategy (Anchor, Discovery, Floor). |
Stake.sol |
Harberger-tax staking with snatching auctions and discrete tax brackets. |
OptimizerV3.sol |
UUPS upgradeable. Binary bear/bull parameter selection from staking sentiment. |
VWAPTracker.sol |
Volume-weighted average price with directional recording and compression. |
Setup
git submodule update --init --recursive
cd lib/uni-v3-lib && npm install && cd ../..
forge build
forge test
Deploy
source .env
forge script script/BaseSepoliaDeploy.sol:BaseSepoliaDeploy --slow --broadcast --verify --rpc-url ${BASE_SEPOLIA_RPC_URL}
See docs/DEPLOYMENT_RUNBOOK.md for production deployment.
Deployments
Base Mainnet
| Contract | Address |
|---|---|
| Kraiken | 0x45caa5929f6ee038039984205bdecf968b954820 |
| Stake | 0xed70707fab05d973ad41eae8d17e2bcd36192cfc |
| LiquidityManager | 0x7fd4e645ce258dd3942eddbeb2f99137da8ba13b |
Base Sepolia
| Contract | Address |
|---|---|
| Kraiken | 0x22c264Ecf8D4E49D1E3CabD8DD39b7C4Ab51C1B8 |
| Stake | 0xe28020BCdEeAf2779dd47c670A8eFC2973316EE2 |
| LiquidityManager | 0x3d6a8797693a0bC598210782B6a889E11A2340Cd |
Research & Analysis
The analysis/ directory contains fuzzing scripts, parameter sweep tools, and security analysis:
- SECURITY_REVIEW.md — Security analysis and vulnerability assessment
- KRAIKEN_RESEARCH_REPORT.md — Comprehensive research report
- README.md — Analysis tool usage guide
Key findings: critical sqrt price bug fixed, 1050-combo 4D parameter sweep completed, floor ratchet vulnerability identified. See the research report for details.
ABI Architecture
Contract ABIs flow through the stack via kraiken-lib/src/abis.ts, which imports directly from out/ (forge build artifacts). Run forge build to update ABIs across all consumers (ponder, web-app).
References
- AGENTS.md — Agent guide for onchain development
- UNISWAP_V3_MATH.md — Uniswap V3 math reference
- hAIrberger.md — Dynamic LP strategy design document