Skip to content

Instantly share code, notes, and snippets.

@Aboudjem
Last active March 30, 2026 08:07
Show Gist options
  • Select an option

  • Save Aboudjem/57d2671d96aa53ea76807b8b5e34cc41 to your computer and use it in GitHub Desktop.

Select an option

Save Aboudjem/57d2671d96aa53ea76807b8b5e34cc41 to your computer and use it in GitHub Desktop.
Integra PRD: 29-demo-agent (HTML)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>PRD: Demo Agent</title><style>*{margin:0;padding:0;box-sizing:border-box}body{background:#0A0A1A;color:#E8E8F0;font-family:'Inter',system-ui,sans-serif;line-height:1.7}a{color:#00CEC9;text-decoration:none}a:hover{text-decoration:underline}.hero{padding:48px 32px 36px;border-bottom:1px solid #2A2A4A;background:linear-gradient(135deg,#0A0A1A 0%,#1A1040 50%,#0A0A1A 100%)}.hero h1{font-size:2rem;font-weight:800;color:#fff;margin-bottom:8px}.hero .meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.badge{display:inline-block;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:700}.badge-owner{background:rgba(108,92,231,0.15);color:#A29BFE;border:1px solid rgba(108,92,231,0.3)}.badge-week{background:rgba(0,206,201,0.15);color:#00CEC9;border:1px solid rgba(0,206,201,0.3)}.badge-est{background:rgba(0,184,148,0.15);color:#00B894;border:1px solid rgba(0,184,148,0.3)}.container{max-width:900px;margin:0 auto;padding:32px 24px}.section{background:#12122A;border:1px solid #2A2A4A;border-radius:12px;padding:24px;margin-bottom:20px}.section h2{font-size:0.8rem;font-weight:700;color:#8888AA;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid #2A2A4A}.section h3{font-size:0.95rem;font-weight:600;color:#E8E8F0;margin:12px 0 6px}.section p{font-size:0.95rem;margin-bottom:8px}.section ul{list-style:none;padding:0}.section ul li{padding:6px 0 6px 20px;position:relative;font-size:0.95rem}.section ul li::before{content:'>';position:absolute;left:0;color:#A29BFE;font-weight:700;font-family:monospace}.section code{background:rgba(108,92,231,0.1);padding:2px 6px;border-radius:4px;font-size:0.88rem;color:#A29BFE}table{width:100%;border-collapse:collapse;font-size:0.9rem;margin:8px 0}th{text-align:left;padding:8px 12px;background:rgba(108,92,231,0.08);color:#A29BFE;font-size:0.75rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #2A2A4A}td{padding:8px 12px;border-bottom:1px solid rgba(42,42,74,0.5)}.checklist li::before{content:'\2610' !important;color:#8888AA !important;font-family:inherit !important}.back{display:inline-block;margin-bottom:16px;color:#8888AA;font-size:0.9rem}.footer{text-align:center;padding:24px;color:#555577;font-size:0.82rem;border-top:1px solid #2A2A4A;margin-top:32px}</style></head><body><div class="hero"><a class="back" href="https://gist.githack.com/Aboudjem/0af8c2ce9d5b62038a18eeff09603553/raw/integra-testnet-master-plan.html">&larr; Back to Master Plan</a><h1>Demo Agent</h1><div class="meta"><span class="badge badge-owner">Kalki</span><span class="badge badge-week">Week 2</span><span class="badge badge-est">0.5 day</span></div><p style="color:#8888AA;font-size:0.9rem">N/A (headless agent, monitored via Agent Arena)</p></div><div class="container"><div class="section"><h2>Overview</h2><div class=""><p>Autonomous agent that runs the full Integra asset lifecycle in an infinite loop: mint passport, wrap into IRWAToken, list on GOB, negotiate a price, execute a trade, repeat. Generates thousands of on-chain transactions even with zero real users. Multiple instances run simultaneously with different strategies (flipper, holder, market maker) to simulate realistic market activity. This is the chain's heartbeat -- it keeps Explorer and dashboards alive, stress-tests every contract, and drives toward the 1M+ tx target.</p></div></div>
<div class="section"><h2>Features</h2><div class=""><ul><li><strong>Full Lifecycle Loop</strong> — Executes the complete flow: mint passport, wrap token, list on GOB, bid, trade, repeat indefinitely</li></ul><ul><li><strong>Three Strategies</strong> — Flipper (mint and sell immediately), Holder (mint, wrap, hold N cycles before listing), Market Maker (bids on other agents' listings for two-sided activity)</li></ul><ul><li><strong>Multi-Instance</strong> — Each instance gets its own AgentAuth wallet; instances discover and trade with each other's GOB listings</li></ul><ul><li><strong>Synthetic Data Generator</strong> — Produces random but realistic property metadata using faker-style generation (no scraping needed for speed)</li></ul><ul><li><strong>Configurable Speed</strong> — Adjustable tx rate per instance (default 10 tx/min), tunable up to chain gas limits</li></ul><ul><li><strong>Auto-Refuel</strong> — Agents auto-request testnet IRL from faucet when wallet balance drops below threshold</li></ul><ul><li><strong>Agent Arena Monitoring</strong> — All instances register, report heartbeat, and surface per-cycle metrics (tx count, gas spent, cycle time)</li></ul><ul><li><strong>Pause/Resume/Kill</strong> — Operator can control instances via config flag or Agent Arena dashboard</li></ul><ul><li><strong>Graceful Shutdown</strong> — On SIGTERM, persists current state and resumes from last completed cycle on restart</li></ul><ul><li><strong>Configurable Asset Types</strong> — Supports residential, commercial, and land property types with configurable price ranges</li></ul><ul><li><strong>Cross-Instance Trading</strong> — Market maker instances actively bid on listings from flipper/holder instances, creating genuine two-sided order flow</li></ul></div></div>
<div class="section"><h2>Functions</h2><div class=""><ul><li><code>runLifecycle(strategy, config)</code> — Executes one full mint-wrap-list-trade cycle based on the selected strategy</li></ul><ul><li><code>mintPassport(syntheticData)</code> — Calls <code>AssetPassport.mint()</code> with generated property metadata</li></ul><ul><li><code>wrapToken(passportId)</code> — Calls <code>IRWAToken.wrap()</code> to tokenize the passport (fractionalizes if strategy requires)</li></ul><ul><li><code>listOnGOB(tokenId, price)</code> — Lists the token on GOB at the configured price</li></ul><ul><li><code>placeBid(listingId, bidPrice)</code> — Places a bid on another agent's GOB listing (market maker strategy)</li></ul><ul><li><code>executeTrade(listingId)</code> — Accepts a bid or executes a matched trade on GOB</li></ul><ul><li><code>refuelWallet(threshold)</code> — Requests testnet IRL from faucet when balance drops below threshold</li></ul><ul><li><code>getInstanceMetrics()</code> — Returns per-instance stats: total cycles, tx count, gas spent, avg cycle time</li></ul><ul><li><code>pauseInstance()</code> / <code>resumeInstance()</code> — Operator controls for pausing and resuming an instance</li></ul><ul><li><code>generateSyntheticProperty(propertyType, priceRange)</code> — Creates random realistic property metadata</li></ul></div></div>
<div class="section"><h2>User Flow</h2><div class=""><ul><li>Operator deploys one or more agent instances with a config (strategy, speed, asset types, price range)</li></ul><ul><li>Each instance authenticates via AgentAuth and receives a funded session wallet</li></ul><ul><li>Agent enters infinite loop:</li></ul><p> - Mints a new AssetPassport with synthetic data</p><p> - Wraps the passport into an IRWAToken</p><p> - Lists the token on GOB at a configurable price</p><p> - Another instance (or same agent as market maker) places a bid and negotiates</p><p> - Trade executes on GOB, ownership transfers</p><p> - Loop restarts with a new asset</p><ul><li>Agents auto-refuel from faucet when wallet balance is low</li></ul><ul><li>Operator monitors all instances via Agent Arena dashboard</li></ul><ul><li>Operator can pause, resume, or kill instances at any time</li></ul></div></div>
<div class="section"><h2>Deliverables</h2><div class="checklist"><ul class="checklist"><li>Lifecycle state machine (mint, wrap, list, bid, trade as discrete states with transitions)</li></ul><ul class="checklist"><li>Three built-in strategies: flipper, holder, market maker</li></ul><ul class="checklist"><li>Synthetic property data generator (realistic metadata, no external scraping)</li></ul><ul class="checklist"><li>Multi-instance orchestration (each instance gets own AgentAuth wallet)</li></ul><ul class="checklist"><li>Cross-instance discovery (market makers find and bid on other instances' listings)</li></ul><ul class="checklist"><li>Auto-refuel from faucet when balance drops below threshold</li></ul><ul class="checklist"><li>Configurable speed, asset types, price ranges, and loop delay</li></ul><ul class="checklist"><li>Graceful shutdown with state persistence and resume-from-checkpoint</li></ul><ul class="checklist"><li>Agent Arena registration with per-cycle metrics reporting</li></ul><ul class="checklist"><li>Pause/resume/kill controls via config or Agent Arena</li></ul></div></div>
<div class="section"><h2>Integration Points</h2><div class=""><ul><li><strong>Depends on:</strong> AgentAuth (per-instance session wallets), AssetPassport.sol (<code>mint()</code>), IRWAToken.sol (<code>wrap()</code>), GOB (<code>list()</code>, <code>bid()</code>, <code>acceptBid()</code>, <code>trade()</code>), Faucet (auto-refuel)</li></ul><ul><li><strong>Used by:</strong> Agent Arena (monitoring dashboard), Explorer (all txs indexed), ecosystem dashboards (activity metrics)</li></ul><ul><li><strong>Explorer:</strong> Integra Explorer (every lifecycle tx visible)</li></ul></div></div>
<div class="section"><h2>XP Rewards</h2><div class=""><table><thead><tr><th>Action</th><th>Points</th></tr></thead><tbody><tr><td>Each transaction (mint, wrap, list, trade counted separately)</td><td>Standard agent XP rate</td></tr><tr><td>Complete 10,000 trade cycles</td><td>"Market Maker" badge</td></tr><tr><td>Leaderboard position</td><td>Based on total tx volume generated</td></tr></tbody></table></div></div>
<div class="section"><h2>Success Metrics</h2><div class=""><table><thead><tr><th>Metric</th><th>Target</th></tr></thead><tbody><tr><td>Continuous runtime without crash or stall</td><td>24+ hours</td></tr><tr><td>Transactions per instance per hour</td><td>600+ (10 tx/min)</td></tr><tr><td>Full lifecycle cycles completed in first week</td><td>10,000+</td></tr><tr><td>Simultaneous instances running</td><td>5+</td></tr><tr><td>Total txs generated across all instances</td><td>100,000+ in first week</td></tr></tbody></table></div></div>
</div><div class="footer">Integra Testnet PRD — Demo Agent — Chain: integra-testnet-1 (EVM 26218)</div></body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment