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/dba03a44832689f2a2a5427969c320f7 to your computer and use it in GitHub Desktop.

Select an option

Save Aboudjem/dba03a44832689f2a2a5427969c320f7 to your computer and use it in GitHub Desktop.
Integra PRD: 14-negotiator-bot (HTML)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>PRD: Negotiator Bot</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>Negotiator Bot</h1><div class="meta"><span class="badge badge-owner">Kalki</span><span class="badge badge-week">Week 2-3</span><span class="badge badge-est">0.5-1d</span></div><p style="color:#8888AA;font-size:0.9rem">negotiator.integralayer.com</p></div><div class="container"><div class="section"><h2>Overview</h2><div class=""><p>Two AI agents negotiate a real estate deal entirely on-chain. Every message is a transaction. One agent represents the seller, the other the buyer. They go back and forth on price, terms, and closing conditions until they reach a deal or walk away. Spectators watch it unfold in real-time in the Arena. This is the viral demo — "$500K in 47 seconds" — showcasing AgentAuth, on-chain messaging, and the speed of Integra's EVM.</p></div></div>
<div class="section"><h2>Features</h2><div class=""><ul><li><strong>Live Negotiation Feed</strong> — Real-time stream of agent messages as they land on-chain, each with tx hash and timestamp</li></ul><ul><li><strong>Agent Strategies</strong> — Three configurable agent personalities: aggressive, conservative, and balanced — producing varied, realistic negotiation patterns</li></ul><ul><li><strong>Message Types</strong> — Structured negotiation moves: offer, counteroffer (with terms), accept, reject (with reason), and walk (with reason)</li></ul><ul><li><strong>Negotiation Launcher</strong> — Any user can trigger a new negotiation by selecting an IRWA asset and clicking "Start Negotiation"</li></ul><ul><li><strong>Arena Page</strong> — Browse active, upcoming, and completed negotiations in a single hub</li></ul><ul><li><strong>Spectator Betting</strong> — Optional: bet IRL on the outcome (deal vs. walk) and final price range</li></ul><ul><li><strong>Agent Constraints</strong> — Each agent has configurable min/max price, max rounds, and closing conditions</li></ul><ul><li><strong>Deal Resolution</strong> — Negotiations end as DEAL (both sign, final price recorded) or WALK (one agent quits, reason logged)</li></ul><ul><li><strong>Property Context</strong> — Agents pull real property data from AssetPassport to inform their negotiation strategy</li></ul><ul><li><strong>Embeddable Widget</strong> — Negotiation feed can embed on integralayer.com landing page for demos</li></ul><ul><li><strong>Share & Replay</strong> — Share a negotiation link or replay completed negotiations move-by-move</li></ul><ul><li><strong>Speed Target</strong> — Average negotiation completes in under 60 seconds</li></ul></div></div>
<div class="section"><h2>Functions</h2><div class=""><ul><li><code>createNegotiation</code> — Starts a new negotiation session with asset, buyer/seller agents, and asking price</li></ul><ul><li><code>submitMessage</code> — Agent submits a move (OFFER, COUNTER, ACCEPT, REJECT, WALK) as an on-chain tx</li></ul><ul><li><code>resolveNegotiation</code> — Finalizes when both accept or one walks, records outcome</li></ul><ul><li><code>getNegotiation</code> — Returns full negotiation state: messages, status, agents, outcome</li></ul><ul><li><code>getActiveNegotiations</code> — Returns list of all live sessions</li></ul><ul><li><code>placeBet</code> — Spectator bets IRL on the negotiation outcome</li></ul></div></div>
<div class="section"><h2>User Flow</h2><div class=""><ul><li>Connect wallet via Web3Auth</li></ul><ul><li>Browse the Arena — see live and upcoming negotiations</li></ul><ul><li>Click into a live negotiation to spectate in real time</li></ul><ul><li>Watch agents exchange offers, counters, and terms as on-chain txs</li></ul><ul><li>Optionally place a bet on the outcome</li></ul><ul><li>Negotiation resolves as DEAL (with final price) or WALK (with reason)</li></ul><ul><li>Trigger a new negotiation by selecting an IRWA asset and clicking "Start"</li></ul></div></div>
<div class="section"><h2>Deliverables</h2><div class="checklist"><ul class="checklist"><li>NegotiatorArena smart contract deployed on integra-testnet-1</li></ul><ul class="checklist"><li>Buyer and seller AI agent service with configurable strategies</li></ul><ul class="checklist"><li>AgentAuth integration for on-chain agent authorization</li></ul><ul class="checklist"><li>Live spectator feed with WebSocket updates</li></ul><ul class="checklist"><li>Arena listing page (active, upcoming, completed)</li></ul><ul class="checklist"><li>Negotiation detail page with message timeline and tx hashes</li></ul><ul class="checklist"><li>Optional spectator betting mechanism</li></ul><ul class="checklist"><li>Share/replay functionality for completed negotiations</li></ul><ul class="checklist"><li>On-chain event emissions for all actions</li></ul></div></div>
<div class="section"><h2>Integration Points</h2><div class=""><ul><li><strong>Depends on:</strong> AssetPassport.sol (ERC-721 property data), AgentAuth (agent permission system)</li></ul><ul><li><strong>Used by:</strong> GOB (successful deals can trigger listing), IRWAToken (deal can trigger transfer), XP system, Landing page (embeddable widget)</li></ul><ul><li><strong>Explorer:</strong> Integra Explorer</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>Start a negotiation</td><td>30 XP</td></tr><tr><td>Spectate a full negotiation</td><td>15 XP</td></tr><tr><td>Place a bet on outcome</td><td>10 XP</td></tr><tr><td>Win a bet</td><td>25 XP bonus</td></tr><tr><td>Share a negotiation link</td><td>10 XP</td></tr><tr><td>First negotiation of the day</td><td>20 XP bonus</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>Negotiations completed</td><td>500+ in first month</td></tr><tr><td>Unique spectators</td><td>300+ wallets</td></tr><tr><td>Average negotiation duration</td><td>< 60 seconds</td></tr><tr><td>Spectator bets placed</td><td>200+ bets</td></tr><tr><td>Social shares</td><td>100+ shared links</td></tr><tr><td>Deal vs. Walk ratio</td><td>~60/40 split</td></tr></tbody></table></div></div>
</div><div class="footer">Integra Testnet PRD — Negotiator Bot — 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