mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2026-07-30 10:30:16 +00:00
Merge pull request #3663 from XRPLF/agentic-txns-xrpl
New section: Agentic transactions on XRPL
This commit is contained in:
File diff suppressed because one or more lines are too long
98
static/img/xrpl-agentic-payment-loop-light.svg
Normal file
98
static/img/xrpl-agentic-payment-loop-light.svg
Normal file
@@ -0,0 +1,98 @@
|
||||
<svg viewBox="0 0 910 320" xmlns="http://www.w3.org/2000/svg" role="img" font-family="'Inter','Helvetica Neue',Arial,sans-serif" style="">
|
||||
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">The Agentic Payment Loop on the XRP Ledger</title>
|
||||
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Five-step flow: Trigger, Decision, Transaction, XRP Ledger Validation (confirms as tesSUCCESS or expires cleanly — no retry needed), then Logging.</desc>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="900" height="310" fill="#F6F8FC" rx="10" style="fill:rgb(246, 248, 252);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Subtle horizontal rule under title -->
|
||||
<line x1="60" y1="55" x2="840" y2="55" stroke="#D4DCF0" stroke-width="1" style="fill:rgb(0, 0, 0);stroke:rgb(212, 220, 240);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="450" y="38" text-anchor="middle" fill="#0B0D1E" font-size="14" font-weight="700" letter-spacing="0.5" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:14px;font-weight:700;text-anchor:middle;dominant-baseline:auto">The Agentic Payment Loop</text>
|
||||
<text x="820" y="38" text-anchor="end" fill="#A0B4D4" font-size="10" font-weight="500" letter-spacing="1.5" style="fill:rgb(160, 180, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:500;text-anchor:end;dominant-baseline:auto">XRP LEDGER</text>
|
||||
|
||||
<!-- ── ARROW MARKER ── -->
|
||||
<defs>
|
||||
<marker id="ah-l" markerWidth="7" markerHeight="7" refX="5.5" refY="3.5" orient="auto">
|
||||
<polygon points="0 0.5, 6 3.5, 0 6.5" fill="#0094C4" opacity="0.7"/>
|
||||
</marker>
|
||||
<filter id="shadow-l" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feDropShadow dx="0" dy="1" stdDeviation="3" flood-color="#0076A8" flood-opacity="0.12"/>
|
||||
</filter>
|
||||
<mask id="imagine-text-gaps-03xr4p" maskUnits="userSpaceOnUse"><rect x="0" y="0" width="910" height="320" fill="white"/><rect x="349.93853759765625" y="22.237573623657227" width="200.12290954589844" height="21.20302963256836" fill="black" rx="2"/><rect x="737.8306884765625" y="26.538331985473633" width="86.16936492919922" height="16.04212188720703" fill="black" rx="2"/><rect x="130.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="115.89395904541016" y="145.95787048339844" width="48.21208572387695" height="18.622575759887695" fill="black" rx="2"/><rect x="107.2185287475586" y="163.53834533691406" width="65.56295394897461" height="15.18196964263916" fill="black" rx="2"/><rect x="285.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="266.122802734375" y="145.95787048339844" width="57.754390716552734" height="18.622575759887695" fill="black" rx="2"/><rect x="255.21014404296875" y="163.53834533691406" width="79.51976013183594" height="15.550621032714844" fill="black" rx="2"/><rect x="440.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="412.5549011230469" y="145.95787048339844" width="74.89022064208984" height="18.622575759887695" fill="black" rx="2"/><rect x="414.88671875" y="163.53834533691406" width="70.2265853881836" height="15.550621032714844" fill="black" rx="2"/><rect x="595.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="572.927490234375" y="145.95787048339844" width="64.0610466003418" height="18.622575759887695" fill="black" rx="2"/><rect x="572.5314331054688" y="163.53834533691406" width="64.88718032836914" height="16.04212188720703" fill="black" rx="2"/><rect x="417.7933044433594" y="235.6781768798828" width="17.44150733947754" height="16.902273178100586" fill="black" rx="2"/><rect x="440" y="225.6781768798828" width="56.24912643432617" height="16.902273178100586" fill="black" rx="2"/><rect x="440" y="241.538330078125" width="133.87779998779297" height="15.18196964263916" fill="black" rx="2"/><rect x="618.3712158203125" y="234.81802368164062" width="15.257528305053711" height="17.76242446899414" fill="black" rx="2"/><rect x="640" y="225.6781768798828" width="86.81778717041016" height="16.902273178100586" fill="black" rx="2"/><rect x="639.9400024414062" y="241.538330078125" width="137.83531188964844" height="15.5505952835083" fill="black" rx="2"/><rect x="483.5964050292969" y="262.538330078125" width="252.80718994140625" height="15.446331024169922" fill="black" rx="2"/><rect x="750.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="732.6683959960938" y="145.95787048339844" width="54.6632194519043" height="18.622575759887695" fill="black" rx="2"/><rect x="714.61865234375" y="163.53834533691406" width="90.76270294189453" height="15.18196964263916" fill="black" rx="2"/></mask></defs>
|
||||
|
||||
<!-- ── CONNECTING ARROWS (y=115) ── -->
|
||||
<line x1="169" y1="115" x2="265" y2="115" stroke="#0094C4" stroke-width="1.5" opacity="0.45" marker-end="url(#ah-l)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.45;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="324" y1="115" x2="420" y2="115" stroke="#0094C4" stroke-width="1.5" opacity="0.45" marker-end="url(#ah-l)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.45;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="479" y1="115" x2="573" y2="115" stroke="#0094C4" stroke-width="1.5" opacity="0.45" marker-end="url(#ah-l)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.45;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="637" y1="115" x2="730" y2="115" stroke="#0094C4" stroke-width="1.5" opacity="0.45" marker-end="url(#ah-l)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.45;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- ── STEP 1: TRIGGER cx=140 ── -->
|
||||
<circle cx="140" cy="115" r="29" fill="#FFFFFF" stroke="#C8D8EC" stroke-width="1.5" style="fill:rgb(255, 255, 255);stroke:rgb(200, 216, 236);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="140" y="78" text-anchor="middle" fill="#A0B8D4" font-size="9" font-weight="700" style="fill:rgb(160, 184, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">01</text>
|
||||
<path d="M144,100 L137,116 L142,116 L138,128 L147,112 L141,112 Z" fill="#0094C4" opacity="0.85" style="fill:rgb(0, 148, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="140" y="160" text-anchor="middle" fill="#0B0D1E" font-size="12" font-weight="600" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Trigger</text>
|
||||
<text x="140" y="175" text-anchor="middle" fill="#7A90B4" font-size="10" style="fill:rgb(122, 144, 180);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Event arrives</text>
|
||||
|
||||
<!-- ── STEP 2: DECISION cx=295 ── -->
|
||||
<circle cx="295" cy="115" r="29" fill="#FFFFFF" stroke="#C8D8EC" stroke-width="1.5" style="fill:rgb(255, 255, 255);stroke:rgb(200, 216, 236);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="295" y="78" text-anchor="middle" fill="#A0B8D4" font-size="9" font-weight="700" style="fill:rgb(160, 184, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">02</text>
|
||||
<polygon points="295,100 303,115 295,130 287,115" fill="none" stroke="#0094C4" stroke-width="1.5" opacity="0.85" style="fill:none;stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<circle cx="295" cy="115" r="3" fill="#0094C4" opacity="0.85" style="fill:rgb(0, 148, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="295" y="160" text-anchor="middle" fill="#0B0D1E" font-size="12" font-weight="600" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Decision</text>
|
||||
<text x="295" y="175" text-anchor="middle" fill="#7A90B4" font-size="10" style="fill:rgb(122, 144, 180);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Agent evaluates</text>
|
||||
|
||||
<!-- ── STEP 3: TRANSACTION cx=450 ── -->
|
||||
<circle cx="450" cy="115" r="29" fill="#FFFFFF" stroke="#C8D8EC" stroke-width="1.5" style="fill:rgb(255, 255, 255);stroke:rgb(200, 216, 236);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="450" y="78" text-anchor="middle" fill="#A0B8D4" font-size="9" font-weight="700" style="fill:rgb(160, 184, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">03</text>
|
||||
<path d="M450,102 L443,113 L447,113 L447,128 L453,128 L453,113 L457,113 Z" fill="#0094C4" opacity="0.85" style="fill:rgb(0, 148, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="450" y="160" text-anchor="middle" fill="#0B0D1E" font-size="12" font-weight="600" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Transaction</text>
|
||||
<text x="450" y="175" text-anchor="middle" fill="#7A90B4" font-size="10" style="fill:rgb(122, 144, 180);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Sign & submit</text>
|
||||
|
||||
<!-- ── STEP 4: VALIDATION cx=605 (highlighted) ── -->
|
||||
<!-- Subtle drop shadow ring -->
|
||||
<circle cx="605" cy="115" r="36" fill="none" stroke="#0094C4" stroke-width="0.5" opacity="0.12" style="fill:none;stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.12;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<circle cx="605" cy="115" r="31" fill="#EDF6FC" stroke="#0076A8" stroke-width="2" filter="url(#shadow-l)" style="fill:rgb(237, 246, 252);stroke:rgb(0, 118, 168);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="605" y="78" text-anchor="middle" fill="#0076A8" font-size="9" font-weight="700" style="fill:rgb(0, 118, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">04</text>
|
||||
<!-- XRPL hexagon icon -->
|
||||
<polygon points="605,100 615,105 615,117 605,122 595,117 595,105" fill="none" stroke="#0076A8" stroke-width="1.5" opacity="0.95" style="fill:none;stroke:rgb(0, 118, 168);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.95;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<circle cx="605" cy="111" r="3.5" fill="#0076A8" opacity="0.85" style="fill:rgb(0, 118, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="605" y="160" text-anchor="middle" fill="#0B0D1E" font-size="12" font-weight="700" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:700;text-anchor:middle;dominant-baseline:auto">Validation</text>
|
||||
<text x="605" y="175" text-anchor="middle" fill="#0076A8" font-size="10" font-weight="600" style="fill:rgb(0, 118, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:600;text-anchor:middle;dominant-baseline:auto">XRP Ledger</text>
|
||||
|
||||
<!-- Dashed arrow down from step 4 to callout -->
|
||||
<line x1="605" y1="148" x2="605" y2="205" stroke="#0094C4" stroke-width="1" stroke-dasharray="4,3" opacity="0.35" marker-end="url(#ah-l)" mask="url(#imagine-text-gaps-03xr4p)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:4px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.35;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- ── OUTCOME CALLOUT BOX ── -->
|
||||
<rect x="395" y="210" width="430" height="72" rx="8" fill="#FFFFFF" stroke="#C8D8EC" stroke-width="1" style="fill:rgb(255, 255, 255);stroke:rgb(200, 216, 236);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Divider -->
|
||||
<line x1="610" y1="222" x2="610" y2="274" stroke="#D8E4F4" stroke-width="1" mask="url(#imagine-text-gaps-03xr4p)" style="fill:rgb(0, 0, 0);stroke:rgb(216, 228, 244);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Left — Confirms -->
|
||||
<circle cx="426" cy="243" r="11" fill="#F0FDF4" stroke="#16A34A" stroke-width="1.5" style="fill:rgb(240, 253, 244);stroke:rgb(22, 163, 74);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="426" y="248" text-anchor="middle" fill="#16A34A" font-size="11" font-weight="700" style="fill:rgb(22, 163, 74);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:11px;font-weight:700;text-anchor:middle;dominant-baseline:auto">✓</text>
|
||||
<text x="444" y="238" fill="#16A34A" font-size="11" font-weight="700" style="fill:rgb(22, 163, 74);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:11px;font-weight:700;text-anchor:start;dominant-baseline:auto">Confirms</text>
|
||||
<text x="444" y="253" fill="#5A9A70" font-size="10" style="fill:rgb(90, 154, 112);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:start;dominant-baseline:auto">tesSUCCESS · 3–5 seconds</text>
|
||||
|
||||
<!-- Right — Expires -->
|
||||
<circle cx="626" cy="243" r="11" fill="#FFFBEB" stroke="#D97706" stroke-width="1.5" style="fill:rgb(255, 251, 235);stroke:rgb(217, 119, 6);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="626" y="248" text-anchor="middle" fill="#D97706" font-size="12" style="fill:rgb(217, 119, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">○</text>
|
||||
<text x="644" y="238" fill="#D97706" font-size="11" font-weight="700" style="fill:rgb(217, 119, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:11px;font-weight:700;text-anchor:start;dominant-baseline:auto">Expires cleanly</text>
|
||||
<text x="644" y="253" fill="#997030" font-size="10" style="fill:rgb(153, 112, 48);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:start;dominant-baseline:auto">Agent resubmits or escalates</text>
|
||||
|
||||
<!-- Footer note inside callout -->
|
||||
<text x="610" y="274" text-anchor="middle" fill="#A0B4D0" font-size="9.5" font-style="italic" style="fill:rgb(160, 180, 208);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9.5px;font-weight:400;font-style:italic;text-anchor:middle;dominant-baseline:auto">No retry loop needed — deterministic outcome every time</text>
|
||||
|
||||
<!-- ── STEP 5: LOGGING cx=760 ── -->
|
||||
<circle cx="760" cy="115" r="29" fill="#FFFFFF" stroke="#C8D8EC" stroke-width="1.5" style="fill:rgb(255, 255, 255);stroke:rgb(200, 216, 236);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="760" y="78" text-anchor="middle" fill="#A0B8D4" font-size="9" font-weight="700" style="fill:rgb(160, 184, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">05</text>
|
||||
<line x1="751" y1="105" x2="769" y2="105" stroke="#0094C4" stroke-width="2" stroke-linecap="round" opacity="0.85" mask="url(#imagine-text-gaps-03xr4p)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.85;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="751" y1="112" x2="769" y2="112" stroke="#0094C4" stroke-width="2" stroke-linecap="round" opacity="0.65" mask="url(#imagine-text-gaps-03xr4p)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.65;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="751" y1="119" x2="762" y2="119" stroke="#0094C4" stroke-width="2" stroke-linecap="round" opacity="0.45" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.45;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="751" y1="126" x2="769" y2="126" stroke="#0094C4" stroke-width="1.5" stroke-linecap="round" opacity="0.25" style="fill:rgb(0, 0, 0);stroke:rgb(0, 148, 196);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.25;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="760" y="160" text-anchor="middle" fill="#0B0D1E" font-size="12" font-weight="600" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Logging</text>
|
||||
<text x="760" y="175" text-anchor="middle" fill="#7A90B4" font-size="10" style="fill:rgb(122, 144, 180);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Record & continue</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
108
static/img/xrpl-agentic-payment-loop.svg
Normal file
108
static/img/xrpl-agentic-payment-loop.svg
Normal file
@@ -0,0 +1,108 @@
|
||||
<svg viewBox="0 0 910 320" xmlns="http://www.w3.org/2000/svg" role="img" font-family="'Inter','Helvetica Neue',Arial,sans-serif" style="">
|
||||
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">The Agentic Payment Loop on the XRP Ledger</title>
|
||||
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Five-step flow: Trigger, Decision, Transaction, XRP Ledger Validation (confirms as tesSUCCESS or expires cleanly — no retry needed), then Logging.</desc>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="900" height="310" fill="#0B0D1E" rx="10" style="fill:rgb(11, 13, 30);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Subtle horizontal rule under title -->
|
||||
<line x1="60" y1="55" x2="840" y2="55" stroke="#1A2240" stroke-width="1" style="fill:rgb(0, 0, 0);stroke:rgb(26, 34, 64);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="450" y="38" text-anchor="middle" fill="#FFFFFF" font-size="14" font-weight="700" letter-spacing="0.5" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:14px;font-weight:700;text-anchor:middle;dominant-baseline:auto">The Agentic Payment Loop</text>
|
||||
<text x="820" y="38" text-anchor="end" fill="#1D3060" font-size="10" font-weight="500" letter-spacing="1.5" style="fill:rgb(29, 48, 96);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:500;text-anchor:end;dominant-baseline:auto">XRP LEDGER</text>
|
||||
|
||||
<!-- ── ARROW MARKER ── -->
|
||||
<defs>
|
||||
<marker id="ah" markerWidth="7" markerHeight="7" refX="5.5" refY="3.5" orient="auto">
|
||||
<polygon points="0 0.5, 6 3.5, 0 6.5" fill="#00B4E4" opacity="0.6"/>
|
||||
</marker>
|
||||
<!-- Glow filter for step 4 -->
|
||||
<filter id="glow" x="-40%" y="-40%" width="180%" height="180%">
|
||||
<feGaussianBlur stdDeviation="3" result="blur"/>
|
||||
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<mask id="imagine-text-gaps-8e1g16" maskUnits="userSpaceOnUse"><rect x="0" y="0" width="910" height="320" fill="white"/><rect x="349.93853759765625" y="22.237573623657227" width="200.12290954589844" height="21.20302963256836" fill="black" rx="2"/><rect x="737.8306884765625" y="26.538331985473633" width="86.16936492919922" height="16.04212188720703" fill="black" rx="2"/><rect x="130.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="115.89395904541016" y="145.95787048339844" width="48.21208572387695" height="18.622575759887695" fill="black" rx="2"/><rect x="107.2185287475586" y="163.53834533691406" width="65.56295394897461" height="15.18196964263916" fill="black" rx="2"/><rect x="285.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="266.122802734375" y="145.95787048339844" width="57.754390716552734" height="18.622575759887695" fill="black" rx="2"/><rect x="255.21014404296875" y="163.53834533691406" width="79.51976013183594" height="15.550621032714844" fill="black" rx="2"/><rect x="440.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="412.5549011230469" y="145.95787048339844" width="74.89022064208984" height="18.622575759887695" fill="black" rx="2"/><rect x="414.88671875" y="163.53834533691406" width="70.2265853881836" height="15.550621032714844" fill="black" rx="2"/><rect x="595.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="572.927490234375" y="145.95787048339844" width="64.0610466003418" height="18.622575759887695" fill="black" rx="2"/><rect x="573.2838745117188" y="163.53834533691406" width="63.501930236816406" height="16.04212188720703" fill="black" rx="2"/><rect x="417.7933044433594" y="235.6781768798828" width="17.44150733947754" height="16.902273178100586" fill="black" rx="2"/><rect x="440" y="225.6781768798828" width="56.24912643432617" height="16.902273178100586" fill="black" rx="2"/><rect x="440" y="241.538330078125" width="133.87779998779297" height="15.18196964263916" fill="black" rx="2"/><rect x="618.3712158203125" y="234.81802368164062" width="15.257528305053711" height="17.76242446899414" fill="black" rx="2"/><rect x="640" y="225.6781768798828" width="86.81778717041016" height="16.902273178100586" fill="black" rx="2"/><rect x="639.9400024414062" y="241.538330078125" width="137.83531188964844" height="15.5505952835083" fill="black" rx="2"/><rect x="483.5964050292969" y="262.538330078125" width="252.80718994140625" height="15.446331024169922" fill="black" rx="2"/><rect x="750.99365234375" y="98.39848327636719" width="18.0127010345459" height="14.32182502746582" fill="black" rx="2"/><rect x="732.6683959960938" y="145.95787048339844" width="54.6632194519043" height="18.622575759887695" fill="black" rx="2"/><rect x="714.61865234375" y="163.53834533691406" width="90.76270294189453" height="15.18196964263916" fill="black" rx="2"/></mask></defs>
|
||||
|
||||
<!-- Step centers: cx = 140, 295, 450, 605, 760 (spacing 155px, centered in 900px) -->
|
||||
<!-- cy = 115 for all circles -->
|
||||
|
||||
<!-- ── CONNECTING ARROWS (y=115) ── -->
|
||||
<line x1="169" y1="115" x2="265" y2="115" stroke="#00B4E4" stroke-width="1.5" opacity="0.4" marker-end="url(#ah)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.4;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="324" y1="115" x2="420" y2="115" stroke="#00B4E4" stroke-width="1.5" opacity="0.4" marker-end="url(#ah)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.4;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="479" y1="115" x2="573" y2="115" stroke="#00B4E4" stroke-width="1.5" opacity="0.4" marker-end="url(#ah)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.4;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="637" y1="115" x2="730" y2="115" stroke="#00B4E4" stroke-width="1.5" opacity="0.4" marker-end="url(#ah)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.4;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- ── STEP 1: TRIGGER cx=140 ── -->
|
||||
<circle cx="140" cy="115" r="29" fill="#0F1425" stroke="#2A4A6E" stroke-width="1.5" style="fill:rgb(15, 20, 37);stroke:rgb(42, 74, 110);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="140" y="78" text-anchor="middle" fill="#3A6090" font-size="9" font-weight="700" style="fill:rgb(58, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">01</text>
|
||||
<!-- lightning bolt path -->
|
||||
<path d="M144,100 L137,116 L142,116 L138,128 L147,112 L141,112 Z" fill="#00B4E4" opacity="0.9" style="fill:rgb(0, 180, 228);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="140" y="160" text-anchor="middle" fill="#E8F0FF" font-size="12" font-weight="600" style="fill:rgb(232, 240, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Trigger</text>
|
||||
<text x="140" y="175" text-anchor="middle" fill="#4A6090" font-size="10" style="fill:rgb(74, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Event arrives</text>
|
||||
|
||||
<!-- ── STEP 2: DECISION cx=295 ── -->
|
||||
<circle cx="295" cy="115" r="29" fill="#0F1425" stroke="#2A4A6E" stroke-width="1.5" style="fill:rgb(15, 20, 37);stroke:rgb(42, 74, 110);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="295" y="78" text-anchor="middle" fill="#3A6090" font-size="9" font-weight="700" style="fill:rgb(58, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">02</text>
|
||||
<!-- diamond fork shape -->
|
||||
<polygon points="295,100 303,115 295,130 287,115" fill="none" stroke="#00B4E4" stroke-width="1.5" opacity="0.9" style="fill:none;stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<circle cx="295" cy="115" r="3" fill="#00B4E4" opacity="0.9" style="fill:rgb(0, 180, 228);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="295" y="160" text-anchor="middle" fill="#E8F0FF" font-size="12" font-weight="600" style="fill:rgb(232, 240, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Decision</text>
|
||||
<text x="295" y="175" text-anchor="middle" fill="#4A6090" font-size="10" style="fill:rgb(74, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Agent evaluates</text>
|
||||
|
||||
<!-- ── STEP 3: TRANSACTION cx=450 ── -->
|
||||
<circle cx="450" cy="115" r="29" fill="#0F1425" stroke="#2A4A6E" stroke-width="1.5" style="fill:rgb(15, 20, 37);stroke:rgb(42, 74, 110);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="450" y="78" text-anchor="middle" fill="#3A6090" font-size="9" font-weight="700" style="fill:rgb(58, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">03</text>
|
||||
<!-- up-arrow path -->
|
||||
<path d="M450,102 L443,113 L447,113 L447,128 L453,128 L453,113 L457,113 Z" fill="#00B4E4" opacity="0.9" style="fill:rgb(0, 180, 228);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="450" y="160" text-anchor="middle" fill="#E8F0FF" font-size="12" font-weight="600" style="fill:rgb(232, 240, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Transaction</text>
|
||||
<text x="450" y="175" text-anchor="middle" fill="#4A6090" font-size="10" style="fill:rgb(74, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Sign & submit</text>
|
||||
|
||||
<!-- ── STEP 4: VALIDATION cx=605 (highlighted, XRPL) ── -->
|
||||
<!-- Outer glow ring -->
|
||||
<circle cx="605" cy="115" r="36" fill="none" stroke="#00B4E4" stroke-width="0.5" opacity="0.15" style="fill:none;stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.15;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<circle cx="605" cy="115" r="31" fill="#091C30" stroke="#00B4E4" stroke-width="2" filter="url(#glow)" style="fill:rgb(9, 28, 48);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="605" y="78" text-anchor="middle" fill="#0090B8" font-size="9" font-weight="700" style="fill:rgb(0, 144, 184);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">04</text>
|
||||
<!-- XRPL hexagon icon (simplified SVG hexagon) -->
|
||||
<polygon points="605,100 615,105 615,117 605,122 595,117 595,105" fill="none" stroke="#00B4E4" stroke-width="1.5" opacity="0.95" style="fill:none;stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.95;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<circle cx="605" cy="111" r="3.5" fill="#00B4E4" opacity="0.8" style="fill:rgb(0, 180, 228);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.8;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="605" y="160" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="700" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:700;text-anchor:middle;dominant-baseline:auto">Validation</text>
|
||||
<text x="605" y="175" text-anchor="middle" fill="#00B4E4" font-size="10" font-weight="500" style="fill:rgb(0, 180, 228);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:500;text-anchor:middle;dominant-baseline:auto">XRP Ledger</text>
|
||||
|
||||
<!-- Dashed arrow down from step 4 to callout -->
|
||||
<line x1="605" y1="148" x2="605" y2="205" stroke="#00B4E4" stroke-width="1" stroke-dasharray="4,3" opacity="0.3" marker-end="url(#ah)" mask="url(#imagine-text-gaps-8e1g16)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:4px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.3;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- ── OUTCOME CALLOUT BOX ── -->
|
||||
<!-- Centered at x=605, spans 400-820, y=210-284 -->
|
||||
<rect x="395" y="210" width="430" height="72" rx="8" fill="#0A1120" stroke="#1A2C4E" stroke-width="1" style="fill:rgb(10, 17, 32);stroke:rgb(26, 44, 78);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Divider -->
|
||||
<line x1="610" y1="222" x2="610" y2="274" stroke="#1A2C4E" stroke-width="1" mask="url(#imagine-text-gaps-8e1g16)" style="fill:rgb(0, 0, 0);stroke:rgb(26, 44, 78);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
|
||||
<!-- Left — Confirms -->
|
||||
<circle cx="426" cy="243" r="11" fill="#071A10" stroke="#22C55E" stroke-width="1.5" style="fill:rgb(7, 26, 16);stroke:rgb(34, 197, 94);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="426" y="248" text-anchor="middle" fill="#22C55E" font-size="11" font-weight="700" style="fill:rgb(34, 197, 94);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:11px;font-weight:700;text-anchor:middle;dominant-baseline:auto">✓</text>
|
||||
<text x="444" y="238" fill="#22C55E" font-size="11" font-weight="700" style="fill:rgb(34, 197, 94);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:11px;font-weight:700;text-anchor:start;dominant-baseline:auto">Confirms</text>
|
||||
<text x="444" y="253" fill="#3A8058" font-size="10" style="fill:rgb(58, 128, 88);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:start;dominant-baseline:auto">tesSUCCESS · 3–5 seconds</text>
|
||||
|
||||
<!-- Right — Expires -->
|
||||
<circle cx="626" cy="243" r="11" fill="#1C1208" stroke="#F59E0B" stroke-width="1.5" style="fill:rgb(28, 18, 8);stroke:rgb(245, 158, 11);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="626" y="248" text-anchor="middle" fill="#F59E0B" font-size="12" style="fill:rgb(245, 158, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">○</text>
|
||||
<text x="644" y="238" fill="#F59E0B" font-size="11" font-weight="700" style="fill:rgb(245, 158, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:11px;font-weight:700;text-anchor:start;dominant-baseline:auto">Expires cleanly</text>
|
||||
<text x="644" y="253" fill="#8A6A28" font-size="10" style="fill:rgb(138, 106, 40);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:start;dominant-baseline:auto">Agent resubmits or escalates</text>
|
||||
|
||||
<!-- Footer note inside callout -->
|
||||
<text x="610" y="274" text-anchor="middle" fill="#2A3C60" font-size="9.5" font-style="italic" style="fill:rgb(42, 60, 96);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9.5px;font-weight:400;font-style:italic;text-anchor:middle;dominant-baseline:auto">No retry loop needed — deterministic outcome every time</text>
|
||||
|
||||
<!-- ── STEP 5: LOGGING cx=760 ── -->
|
||||
<circle cx="760" cy="115" r="29" fill="#0F1425" stroke="#2A4A6E" stroke-width="1.5" style="fill:rgb(15, 20, 37);stroke:rgb(42, 74, 110);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="760" y="78" text-anchor="middle" fill="#3A6090" font-size="9" font-weight="700" style="fill:rgb(58, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:auto">05</text>
|
||||
<!-- log lines icon -->
|
||||
<line x1="751" y1="105" x2="769" y2="105" stroke="#00B4E4" stroke-width="2" stroke-linecap="round" opacity="0.9" mask="url(#imagine-text-gaps-8e1g16)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.9;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="751" y1="112" x2="769" y2="112" stroke="#00B4E4" stroke-width="2" stroke-linecap="round" opacity="0.7" mask="url(#imagine-text-gaps-8e1g16)" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.7;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="751" y1="119" x2="762" y2="119" stroke="#00B4E4" stroke-width="2" stroke-linecap="round" opacity="0.5" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.5;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<line x1="751" y1="126" x2="769" y2="126" stroke="#00B4E4" stroke-width="1.5" stroke-linecap="round" opacity="0.3" style="fill:rgb(0, 0, 0);stroke:rgb(0, 180, 228);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.3;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
||||
<text x="760" y="160" text-anchor="middle" fill="#E8F0FF" font-size="12" font-weight="600" style="fill:rgb(232, 240, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:auto">Logging</text>
|
||||
<text x="760" y="175" text-anchor="middle" fill="#4A6090" font-size="10" style="fill:rgb(74, 96, 144);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Inter, "Helvetica Neue", Arial, sans-serif;font-size:10px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Record & continue</text>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
Reference in New Issue
Block a user