Technical Architecture

Session-based verification with zero-knowledge proofs and Uniswap v4 Hooks. Production-tested, 99% code coverage.

Core Components

Registry

UUPS Proxy
Upgradeable

System configuration center

Manage trusted Issuers (Coinbase, Circle, etc.)
Router whitelist (Universal Router)
Global parameters (24h Session TTL)
Emergency pause mechanism
Base Sepolia: 0x461e...5Faf

SessionManager

UUPS Proxy
Upgradeable

User verification state caching

24-hour session TTL
Batch query support (~5k gas)
Manual session termination
Role-based access control (VERIFIER_ROLE)
Base Sepolia: 0xaa66...06e9

ComplianceHook

Immutable
Immutable

Uniswap v4 access control layer

Intercepts beforeSwap/beforeAddLiquidity/beforeRemoveLiquidity
EIP-712 signature verification (hookData)
Nonce-based replay attack prevention
Session status validation (~8k gas)
Base Sepolia: 0x0000...002c

PlonkVerifier

Immutable
Immutable

On-chain ZK proof verification

PLONK algorithm (~350k gas)
Universal Setup (no trusted ceremony)
Public input validation (user, merkleRoot, issuer)
Mock implementation for testnet
Base Sepolia: 0x3Aa3...e3cC

System Data Flow

1
Verification Flow

User connects wallet~2s
Obtain Coinbase Verification attestationManual
Download ZK circuit files (.wasm, .zkey)~3s
Generate ZK Proof (Web Worker)4.58s avg
Submit proof to Verifier contract~350k gas
Start session (24h validity)~54k gas
Session activated ✓Ready

2
Swap Flow

User inputs swap parametersUI
Frontend checks session active~5k gas
Generate EIP-712 signature<1s
Construct hookData (user, deadline, nonce, sig)~0.1s
Call UniversalRouter.swap(...)Tx
ComplianceHook.beforeSwap() triggeredHook
Verify hookData signature + session~8k gas
PoolManager executes swap ✓~200k gas

Integration Example

Solidity Integration
// Integrate ILAL into your pool
import {IHooks} from "v4-core/interfaces/IHooks.sol";

contract MyPool {
    address constant COMPLIANCE_HOOK = 
        0x00000000DA15E8FCA4dFf7aF93aBa7030000002c;
    
    function initialize() external {
        PoolKey memory key = PoolKey({
            currency0: USDC,
            currency1: USDY,
            fee: 3000,
            tickSpacing: 60,
            hooks: IHooks(COMPLIANCE_HOOK)
        });
        
        poolManager.initialize(key, SQRT_RATIO_1_1, "");
    }
}
Frontend Integration
// Activate user session
import { generateZKProof } from '@ilal/sdk';

// 1. Generate proof (one-time, ~4.58s)
const proof = await generateZKProof({
  attestationUID,
  userAddress
});

// 2. Start session (24h validity)
await sessionManager.startSession(
  userAddress,
  proof.data,
  proof.publicInputs
);

// 3. User can now trade freely
// Session check: ~8k gas per swap

Performance Benchmarks

OperationFirst TransactionSubsequentTargetStatus
Swap54,000 gas8,000 gas<60,000 gas
Add Liquidity52,000 gas10,000 gas<60,000 gas
Remove Liquidity48,000 gas9,000 gas<50,000 gas
Session Check5,000 gas5,000 gas<8,000 gas
ZK Verification350,000 gasN/A gas<400,000 gas

Traditional Approach (Per-TX Verification)

Gas per swap:252,000 gas
30 swaps/month:7,560,000 gas
Monthly cost:$2,016

ILAL Session Caching

First verification:404,000 gas
29 cached swaps:232,000 gas
Monthly cost:$37
98.2% Cost Reduction
Save $1,979 per month per user (based on 30 swaps, 20 Gwei, $2000 ETH)

Security & Audit Status

Comprehensive Testing

Total Tests
127
Pass Rate
97.6%
Code Coverage
99%
Security Tests
15/15
Test Categories
Unit Tests68 tests (97%)
Integration Tests35 tests (97.1%)
Security Tests15 tests (100%)
Performance Tests9 tests (100%)

Deployed Contracts (Base Sepolia)

Registry
0x461e57114c2DeE76dEC717eD8B2f4fBe62AB5Faf
SessionManager
0xaa66F34d10F60C2E8E63cA8DD6E1CAc7D2c406e9
ComplianceHook
0x00000000DA15E8FCA4dFf7aF93aBa7030000002c
MockVerifier
0x3Aa3f5766bfa2010070D93a27edA14A2ed38e3cC
View on BaseScan

Security Mechanisms

Identity Verification
ZK Proofs (privacy-preserving)
EIP-712 signatures
Nonce-based replay protection
Access Control
24-hour session TTL
Manual revocation support
Emergency pause mechanism
Upgrade Safety
UUPS Proxy (Registry, SessionManager)
Immutable Hook & Verifier
Multisig governance recommended

Ready to integrate ILAL into your protocol?