File size: 2,898 Bytes
865aa70 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | #!/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()
|