#!/usr/bin/env python3 """ BuilderBrain Hackathon Demo ============================ Run this script to demonstrate the full BuilderBrain pipeline: 1. Fetch live Polymarket data 2. Generate reasoning traces with Kelly sizing 3. Route via builder codes 4. Settle via Arc nanopayments Usage: python demo.py Expected output: - 20-50 trade signals with reasoning traces - Portfolio stats with risk metrics - Audit log ready for on-chain anchoring """ import json from builderbrain import BuilderBrain def main(): print("=" * 70) print(" BuilderBrain — Agentic Prediction Market Intelligence") print(" Agora Agents Hackathon | Canteen × Circle") print("=" * 70) # Initialize with $10k paper bankroll brain = BuilderBrain( bankroll_usd=10000, paper_trade=True, builder_code="builderbrain_demo_v1", min_edge=0.03, # 3% minimum edge max_positions=15, ) # Run 3 cycles to simulate 48h of operation for i in range(3): print(f"\n{'─' * 70}") print(f" Cycle {i+1}/3 — Simulating live market scanning...") print(f"{'─' * 70}") signals = brain.run_cycle() # Print top signal from this cycle if signals: top = max(signals, key=lambda s: s.expected_return) print(f"\n 🎯 Top Signal:") print(f" Market: {top.market_id}") print(f" Side: {top.side} | Size: {top.size_fraction:.2%} bankroll") print(f" Expected Return: {top.expected_return:.4f}") print(f" Confidence: {top.confidence:.1%}") print(f" Urgency: {top.urgency}") print(f" Trace Hash: {top.reasoning_trace.reasoning_hash}") # Final stats print(f"\n{'=' * 70}") print(" FINAL PORTFOLIO STATS") print(f"{'=' * 70}") stats = brain.get_portfolio_stats() print(json.dumps(stats, indent=2, default=str)) # Export audit log audit_file = brain.export_audit_log("builderbrain_audit.json") print(f"\n 📄 Audit log exported: {audit_file}") # Print top 5 signals print(f"\n{'=' * 70}") print(" TOP 5 SIGNALS (by expected return)") print(f"{'=' * 70}") for i, sig in enumerate(brain.get_top_signals(5), 1): print(f"\n #{i} {sig.market_id}") print(f" {sig.side} @ {sig.size_fraction:.2%} bankroll") print(f" E[return]: {sig.expected_return:.4f} | Conf: {sig.confidence:.1%}") print(f" Trace: {sig.reasoning_trace.reasoning_hash}") print(f" Arguments: {len(sig.reasoning_trace.arguments)}") print(f" Risks: {len(sig.reasoning_trace.risk_factors)}") print(f"\n{'=' * 70}") print(" Demo complete. Ready for hackathon submission.") print(f"{'=' * 70}") if __name__ == "__main__": main()