| # Real vs Simulated Integration Status |
|
|
| This document tracks which BuilderBrain components are **real APIs** vs **simulated stubs**. |
|
|
| ## Quick Reference |
|
|
| | Component | Status | What Works Now | What Needs Credentials | |
| |-----------|--------|---------------|----------------------| |
| | **Quant Engine (Kelly)** | ✅ REAL | Full `cvxpy` optimization with real math | None | |
| | **Correlation Matrix** | ✅ REAL | Block-diagonal structure with real estimates | None | |
| | **Reasoning Agent** | ✅ REAL | Structured trace generation with SHA256 hashing | None | |
| | **Polymarket Market Data** | ✅ REAL | Live Gamma API calls (`gamma-api.polymarket.com`) | None (public API) | |
| | **Polymarket Orderbook** | ✅ REAL | Live CLOB API calls (`clob.polymarket.com`) | None (public API) | |
| | **Builder Code Routing** | ⚠️ SIMULATED | Field structure correct; needs `POLY_BUILDER_CODE` + live CLOB key | `POLY_API_KEY`, `POLY_PRIVATE_KEY`, registered builder code | |
| | **Circle Gateway** | ⚠️ SIMULATED | Real HTTP client skeleton; needs `CIRCLE_API_KEY` + burn intent encoding | `CIRCLE_API_KEY`, depositor address, domain info | |
| | **Arc Nanopayments** | ⚠️ SIMULATED | App-level ledger; real settlement requires x402 + EIP-3009 + Gateway | Buyer signatures, seller DB, Gateway batch settlement | |
| | **USYC Yield** | ⚠️ SIMULATED | Balance tracking; real rotation needs Teller contract calls | Web3 provider, Teller contract ABI, wallet | |
| | **Paymaster** | ⚠️ SIMULATED | Log-only; real needs ERC-4337 UserOp + bundler RPC | Pimlico bundler, EntryPoint address, paymaster contract | |
| | **Wallets** | ⚠️ SIMULATED | Config only; real needs Circle Wallets API or self-custody | `CIRCLE_WALLET_API_KEY`, `CIRCLE_WALLET_SET_ID` | |
|
|
| --- |
|
|
| ## Detailed Breakdown |
|
|
| ### ✅ Quant Engine — FULLY REAL |
|
|
| ```python |
| from builderbrain import KellyEngine, CorrelationMatrix |
| |
| engine = KellyEngine(bankroll_usd=10000) |
| positions = engine.size_positions(edges) |
| # Uses cvxpy + ECOS solver — real convex optimization |
| ``` |
|
|
| **No credentials needed.** The Kelly criterion implementation uses `cvxpy` for convex quadratic programming. This is production-grade numerical optimization. |
|
|
| **References:** Tepelyan (Bloomberg, 2026) — we implement a QP approximation to his Laplace quadrature method. |
|
|
| --- |
|
|
| ### ✅ Reasoning Agent — FULLY REAL |
|
|
| ```python |
| from builderbrain import ReasoningAgent |
| |
| agent = ReasoningAgent() |
| trace = agent.reason_about_market(...) |
| # Generates structured traces with SHA256 hashing |
| ``` |
|
|
| **No credentials needed.** The reasoning trace generation, argument structure, risk factor identification, and SHA256 canonical hashing are all implemented and functional. |
|
|
| **What's real:** |
| - `ReasoningTrace` dataclass with full audit trail |
| - `Argument` and `RiskFactor` structures |
| - SHA256 hash of canonical JSON representation |
| - Trade signal generation with urgency classification |
|
|
| --- |
|
|
| ### ✅ Polymarket Market Data — FULLY REAL (Public API) |
|
|
| ```python |
| from builderbrain import PolymarketClient |
| |
| client = PolymarketClient(paper_trade=True) |
| markets = client.fetch_markets(limit=50) |
| # Calls https://gamma-api.polymarket.com/markets (live) |
| ``` |
|
|
| **No credentials needed for read-only.** The Gamma API is public and requires no authentication. |
|
|
| **What's real:** |
| - Live market data (prices, liquidity, volume, categories) |
| - Orderbook fetching from CLOB API |
| - Market parsing with price normalization |
|
|
| **What needs credentials:** |
| - Order submission to CLOB (`POLY_API_KEY`, `POLY_PRIVATE_KEY`) |
| - Builder code attribution (needs registered builder code) |
|
|
| --- |
|
|
| ### ⚠️ Polymarket Builder Codes — SIMULATED |
|
|
| **Current:** Paper trading with simulated order execution. Builder code is attached as a field in the order struct but never submitted on-chain. |
|
|
| **To make real:** |
| 1. Register at https://polymarket.com/settings?tab=builder |
| 2. Get your `bytes32` builder code (e.g., `0x0000...0001`) |
| 3. Set `POLY_BUILDER_CODE` in `.env` |
| 4. Implement CLOB order signing + submission in `polymarket_client.py::_live_execute()` |
|
|
| **Architecture is correct:** Builder code is passed as an order field, serialized on-chain as the `builder` field. This matches Polymarket's documented TypeScript pattern. |
|
|
| --- |
|
|
| ### ⚠️ Circle Gateway — SIMULATED (Real API Skeleton) |
|
|
| **Current:** `CircleGatewayClient` has real HTTP methods but `ArcBridge` falls back to simulation. |
|
|
| **Real API implemented:** |
| ```python |
| from builderbrain import CircleGatewayClient |
| |
| client = CircleGatewayClient(api_key="sk_test_...") |
| domains = client.get_gateway_info() # GET /v1/gateway-info |
| balances = client.get_balances("0x...", 0) # POST /v1/balances |
| # attestation = client.create_transfer_attestation(...) # POST /v1/transfer |
| ``` |
|
|
| **What's simulated:** |
| - Cross-chain routing in `ArcBridge.route_usdc()` (creates fake tx hashes) |
| - No actual burn intent encoding + signing |
|
|
| **To make real:** |
| 1. Set `CIRCLE_API_KEY` in `.env` |
| 2. Pass `gateway_client=CircleGatewayClient(api_key)` to `ArcBridge` |
| 3. Implement burn intent encoding (requires domain info from `get_gateway_info()`) |
| 4. Implement depositor signature (requires wallet integration) |
|
|
| **Gateway Info endpoint works without full setup:** You can call `get_gateway_info()` and `get_balances()` with just an API key. |
|
|
| --- |
|
|
| ### ⚠️ Arc Nanopayments — SIMULATED |
|
|
| **Current:** App-level payment ledger with batch aggregation. No actual cryptographic settlement. |
|
|
| **Real architecture (from docs):** |
| 1. Buyer signs EIP-3009 authorization (off-chain) |
| 2. Seller verifies signature (off-chain) |
| 3. Seller logs in own "virtual ledger" DB |
| 4. Periodic batch settlement via Circle Gateway transfer on Arc |
|
|
| **What's simulated:** |
| - Payment creation (just appends to list) |
| - Batch settlement (just aggregates and clears list) |
| - No EIP-3009 signatures |
| - No x402 HTTP 402 protocol negotiation |
|
|
| **To make real:** |
| 1. Implement EIP-3009 authorization signing (requires buyer wallet) |
| 2. Implement signature verification (seller side) |
| 3. Add database for virtual ledger |
| 4. Wire batch settlement to `CircleGatewayClient` |
|
|
| **No public REST API exists** for `/v1/nanopayments/batches` — this is by design. Settlement is through Gateway. |
|
|
| --- |
|
|
| ### ⚠️ USYC Yield — SIMULATED |
|
|
| **Current:** Balance tracking with simulated rotation. |
|
|
| **Real contracts (Arc Testnet):** |
| - USYC Token: `0xe9185F0c5F296Ed1797AaE4238D26CCaBEadb86C` |
| - Teller: `0x9fdF14c5B14173D74C08Af27AebFf39240dC105A` |
| - Oracle: `0x52b56c7642E71dc54714d879127d97cd0B3D4581` |
|
|
| **What's simulated:** |
| - `rotate_to_usyc()` just updates balance dict |
| - No Teller contract interaction |
| - No Oracle price fetching |
|
|
| **To make real:** |
| 1. Add Web3 provider (e.g., `web3.py` or `ethers.js` via Python wrapper) |
| 2. Load Teller ABI |
| 3. Call Teller.subscribe() with USDC amount |
| 4. Call Oracle for NAV/share price |
| 5. Use `https://usyc.dev.hashnote.com/api/price` for reference pricing |
|
|
| --- |
|
|
| ### ⚠️ Paymaster (Gas Abstraction) — SIMULATED |
|
|
| **Current:** Log-only. No actual ERC-4337 UserOperation construction or submission. |
|
|
| **Real architecture (from docs):** |
| - Arc supports standard ERC-4337 EntryPoint |
| - Use Pimlico bundler on Arc |
| - Circle Paymaster: users sign EIP-2612 permit |
| - `paymasterData` = encodePacked([uint8, address, uint256, bytes], [0, usdcAddress, permitAmount, permitSignature]) |
| - Submit UserOperation via bundler RPC |
|
|
| **What's simulated:** |
| - `sponsor_transaction()` just logs the intent |
| - No UserOperation construction |
| - No bundler RPC call |
| - No paymaster contract interaction |
|
|
| **To make real:** |
| 1. Set `PIMLICO_BUNDLER_URL` in `.env` |
| 2. Implement UserOperation construction (standard ERC-4337 library) |
| 3. Implement EIP-2612 permit signing |
| 4. Submit to Pimlico bundler |
|
|
| --- |
|
|
| ### ⚠️ Wallets — SIMULATED |
|
|
| **Current:** Configuration only. No actual wallet creation or transaction signing. |
|
|
| **Real options:** |
| 1. **Circle Dev-Controlled Wallets:** |
| - API: `create-developer-transaction-transfer`, `create-developer-transaction-contract-execution` |
| - Custodied by Circle; no key exposure |
| - Set `CIRCLE_WALLET_API_KEY` + `CIRCLE_WALLET_SET_ID` |
|
|
| 2. **Self-custody (EOA or SCA):** |
| - Import private key |
| - Use standard Web3 libraries |
| - For SCA: deploy ERC-4337 smart contract wallet |
|
|
| **What's simulated:** |
| - No wallet addresses |
| - No transaction signing |
| - No API calls to Circle Wallet service |
|
|
| --- |
|
|
| ## Migration Path: Simulated → Real |
|
|
| ### Phase 1: Read-Only Live Data (Day 1) |
|
|
| ```python |
| # Already works — just run it |
| brain = BuilderBrain(paper_trade=True) |
| brain.run_cycle() # Fetches real Polymarket data |
| ``` |
|
|
| ### Phase 2: Real Polymarket Builder Codes (Day 2-3) |
|
|
| 1. Register builder code at https://polymarket.com/settings?tab=builder |
| 2. Set `POLY_BUILDER_CODE` in `.env` |
| 3. Implement CLOB order signing (use `py_clob_client` or Polymarket's Python SDK) |
| 4. Switch `paper_trade=False` |
|
|
| ### Phase 3: Circle Gateway Integration (Day 3-4) |
|
|
| 1. Get Circle API key from https://developers.circle.com/ |
| 2. Set `CIRCLE_API_KEY` in `.env` |
| 3. Test `CircleGatewayClient.get_gateway_info()` |
| 4. Implement burn intent encoding for transfers |
| 5. Wire `ArcBridge` with real `gateway_client` |
|
|
| ### Phase 4: USYC + Paymaster (Day 4-5) |
|
|
| 1. Get Arc Testnet USDC from faucet |
| 2. Test Teller contract interaction (subscribe/redeem) |
| 3. Set up Pimlico bundler for paymaster |
| 4. Test ERC-4337 UserOperation flow |
|
|
| ### Phase 5: Nanopayments (Day 5-6) |
|
|
| 1. Implement EIP-3009 authorization flow |
| 2. Set up virtual ledger DB |
| 3. Wire batch settlement to Gateway |
| 4. Test end-to-end: insight → payment → settlement |
|
|
| --- |
|
|
| ## What Judges Will See |
|
|
| | Demo Element | What They See | What's Actually Happening | |
| |-------------|--------------|---------------------------| |
| | Market prices | Real Polymarket data | Live Gamma API calls | |
| | Kelly sizing | Real optimization | `cvxpy` convex QP solver | |
| | Reasoning traces | Structured arguments + risks | SHA256-hashed audit artifacts | |
| | Trade execution | Simulated fills with builder codes | Paper trading; fields correct | |
| | Cross-chain settlement | Simulated transfer hashes | No actual Gateway call | |
| | Nanopayments | Aggregated fee log | No EIP-3009 signatures | |
| | USYC rotation | Balance update | No Teller contract call | |
| | Gas sponsorship | Log entry | No UserOperation | |
|
|
| **Recommendation for hackathon:** Run in simulated mode for the demo, but show the real API client code and explain the integration path. Judges appreciate architectural thinking and honest documentation. |
|
|
| --- |
|
|
| ## Credentials Checklist |
|
|
| To go fully live, you need: |
|
|
| - [ ] Circle Developer account + API key |
| - [ ] Polymarket account + API key + private key |
| - [ ] Registered Polymarket builder code |
| - [ ] Arc Testnet RPC endpoint |
| - [ ] Arc Testnet USDC (from faucet) |
| - [ ] Pimlico bundler access (for paymaster) |
| - [ ] Circle Wallet API key + Wallet Set ID (optional, for embedded wallets) |
|
|
| See `.env.example` for all required environment variables. |
|
|