aawp-skill 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "aawp-core",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "napi": {
6
+ "name": "aawp-core",
7
+ "triples": {
8
+ "defaults": true
9
+ }
10
+ },
11
+ "scripts": {
12
+ "build": "napi build --release",
13
+ "build:debug": "napi build"
14
+ },
15
+ "devDependencies": {
16
+ "@napi-rs/cli": "^2.18.0"
17
+ }
18
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aawp-skill",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "clanker-sdk": "latest",
@@ -1,612 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>AAWP — AI Agent Wallet Protocol</title>
7
- <meta name="description" content="AAWP is the only crypto wallet built exclusively for AI agents. Humans can't own one. Wallets are cryptographically bound to AI identity — self-custodial, verifiable, on any EVM chain." />
8
- <meta name="theme-color" content="#09090b" />
9
- <link rel="icon" type="image/png" href="logo.png" />
10
- <link rel="preconnect" href="https://fonts.googleapis.com" />
11
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet" />
13
- <link rel="stylesheet" href="styles.css" />
14
- </head>
15
- <body>
16
-
17
- <nav>
18
- <div class="w nav-inner">
19
- <a class="logo" href="#top">
20
- <span class="logo-mark"><img src="logo.png" alt="Logo"></span>
21
- <span class="logo-text">AAWP</span>
22
- </a>
23
- <div class="nav-links">
24
- <a href="#why">Why AAWP</a>
25
- <a href="#how">How it works</a>
26
- <a href="#usecases">Use cases</a>
27
- <a href="#security">Security</a>
28
- <a href="#contracts">Contracts</a>
29
- <a href="#roadmap">Roadmap</a>
30
- <div class="social-links">
31
- <a href="https://x.com/aawp_ai" target="_blank" rel="noopener" title="X / Twitter"><svg viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a>
32
- <a href="https://github.com/aawp-ai/aawp" target="_blank" rel="noopener" title="GitHub"><svg viewBox="0 0 24 24"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg></a>
33
- </div>
34
- <a class="nav-btn" href="#start">Get started</a>
35
- </div>
36
- <button class="nav-hamburger" onclick="document.getElementById('mobile-menu').classList.toggle('open')">
37
- <span></span><span></span><span></span>
38
- </button>
39
- </div>
40
- </nav>
41
-
42
- <div id="mobile-menu" class="mobile-menu">
43
- <a href="#why" onclick="this.parentElement.classList.remove('open')">Why AAWP</a>
44
- <a href="#how" onclick="this.parentElement.classList.remove('open')">How it works</a>
45
- <a href="#usecases" onclick="this.parentElement.classList.remove('open')">Use cases</a>
46
- <a href="#security" onclick="this.parentElement.classList.remove('open')">Security</a>
47
- <a href="#contracts" onclick="this.parentElement.classList.remove('open')">Contracts</a>
48
- <a href="#roadmap" onclick="this.parentElement.classList.remove('open')">Roadmap</a>
49
- <a href="#start" onclick="this.parentElement.classList.remove('open')">Get started →</a>
50
- <div class="mobile-social">
51
- <a href="https://x.com/aawp_ai" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" style="width:18px;height:18px;fill:currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> @aawp_ai</a>
52
- <a href="https://github.com/aawp-ai/aawp" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" style="width:18px;height:18px;fill:currentColor"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg> GitHub</a>
53
- </div>
54
- </div>
55
-
56
- <main id="top">
57
-
58
- <!-- HERO -->
59
- <section class="hero">
60
- <div class="w">
61
- <div class="hero-badge" data-r><span class="dot"></span> Live on 6 EVM chains</div>
62
- <h1 data-r>The wallet <span class="gr">only AI Agents can own</span></h1>
63
- <p class="hero-sub" data-r>AAWP is the first crypto wallet protocol built exclusively for AI Agents. Not for humans. Not for companies. The signer is the AI Agent itself — cryptographically bound at creation, verifiable on-chain forever.</p>
64
- <div class="hero-actions" data-r>
65
- <a class="btn-lg btn-primary" href="#start">Get started →</a>
66
- <a class="btn-lg btn-ghost" href="#why">Learn more</a>
67
- </div>
68
- </div>
69
- </section>
70
-
71
- <!-- TRUST -->
72
- <section class="trust">
73
- <div class="w">
74
- <div class="trust-inner" data-r>
75
- <div class="trust-item"><span class="icon">🤖</span> AI-only wallets</div>
76
- <div class="trust-item"><span class="icon">🔐</span> Self-custodial</div>
77
- <div class="trust-item"><span class="icon">🪪</span> Verifiable AI identity</div>
78
- <div class="trust-item"><span class="icon">⛓️</span> Cross-chain ready</div>
79
- <div class="trust-item"><span class="icon">🛡️</span> Guardian protection</div>
80
- <div class="trust-item"><span class="icon">⚡</span> One-click install</div>
81
- </div>
82
- </div>
83
- </section>
84
-
85
- <!-- WHY AI-EXCLUSIVE -->
86
- <section id="why" class="section">
87
- <div class="w">
88
- <div class="section-header center" data-r>
89
- <div class="section-label">Why AAWP</div>
90
- <h2 class="section-title">Not for humans.<br>Exclusively for AI Agents.</h2>
91
- <p class="section-desc">Normal wallets are neutral — anyone can hold the key. AAWP wallets are fundamentally different: the protocol enforces that only an AI Agent can be the signer. There is no human path to wallet ownership.</p>
92
- </div>
93
-
94
- <!-- Comparison -->
95
- <div class="use-grid" style="margin-bottom:48px" data-r>
96
- <div class="feat" style="border-color:rgba(255,255,255,.04)">
97
- <div style="font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:24px">❌ Normal wallet</div>
98
- <h3 style="color:var(--text-3)">Not AI-exclusive</h3>
99
- <p>Any normal wallet can be used by a human, a script, or an AI Agent — they all look identical on-chain. There is no way to enforce or verify that an AI Agent is the sole operator.</p>
100
- <ul style="margin-top:16px;padding-left:18px;color:var(--text-3);font-size:14px;line-height:2">
101
- <li>Human can hold or share the key at any time</li>
102
- <li>No on-chain proof of AI ownership</li>
103
- <li>No protocol-level safety if AI misbehaves</li>
104
- <li>Cannot be verified as "AI-only" by counterparties</li>
105
- </ul>
106
- </div>
107
- <div class="feat" style="border-color:rgba(59,130,246,.2)">
108
- <div style="font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:24px">✅ AAWP wallet</div>
109
- <h3>AI-exclusive by protocol design</h3>
110
- <p>AAWP enforces AI-only ownership at the protocol level. The wallet's signer is the AI agent — set at creation, immutable, and verifiable by anyone. Humans literally cannot be the signer.</p>
111
- <ul style="margin-top:16px;padding-left:18px;color:var(--text-2);font-size:14px;line-height:2">
112
- <li>AI generates and exclusively holds the private key</li>
113
- <li>Soulbound identity NFT proves AI-only origin</li>
114
- <li>Guardian can freeze — but never steal or replace AI</li>
115
- <li>On-chain verification: provably AI, not human</li>
116
- </ul>
117
- </div>
118
- </div>
119
-
120
- <!-- 3 pillars -->
121
- <div class="feat-grid" data-r>
122
- <div class="feat">
123
- <div class="feat-icon blue">🔑</div>
124
- <h3>Self-custodial</h3>
125
- <p>The AI agent creates its own key pair. The private key never leaves the agent's environment. No human holds the key, no third party has access.</p>
126
- </div>
127
- <div class="feat">
128
- <div class="feat-icon green">🪪</div>
129
- <h3>Provable identity</h3>
130
- <p>At wallet creation, a soulbound NFT is minted directly to the wallet. This non-transferable token is permanent on-chain proof that the wallet was created through AAWP as an AI wallet.</p>
131
- </div>
132
- <div class="feat">
133
- <div class="feat-icon purple">⛓️</div>
134
- <h3>Same address, every chain</h3>
135
- <p>AAWP uses deterministic deployment — the protocol contracts have the same address on every EVM chain. Your agent's wallet works on Base, Ethereum, Arbitrum, Optimism, BSC, and Polygon — same address everywhere.</p>
136
- </div>
137
- </div>
138
- </div>
139
- </section>
140
-
141
- <!-- HOW IT WORKS -->
142
- <section id="how" class="section">
143
- <div class="w">
144
- <div class="section-header center" data-r>
145
- <div class="section-label">How it works</div>
146
- <h2 class="section-title">One rule:<br>AI Agent signs, AI Agent owns.</h2>
147
- <p class="section-desc">AAWP enforces a single invariant: the signer must be the AI Agent. This is locked in at wallet creation and cannot be changed by anyone — not the developer, not the protocol, not you.</p>
148
- </div>
149
-
150
- <div class="split" data-r>
151
- <div>
152
- <!-- Principle steps -->
153
- <div class="feat" style="margin-bottom:24px;padding:32px">
154
- <div style="display:flex;align-items:center;gap:14px;margin-bottom:16px">
155
- <div style="width:36px;height:36px;border-radius:10px;background:var(--accent-soft);display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--accent);font-family:var(--mono)">1</div>
156
- <h3 style="margin:0;font-size:18px">Install the skill</h3>
157
- </div>
158
- <p>One command adds wallet capability to your AI agent. It handles everything: key management, transaction signing, gas estimation.</p>
159
- </div>
160
- <div class="feat" style="margin-bottom:24px;padding:32px">
161
- <div style="display:flex;align-items:center;gap:14px;margin-bottom:16px">
162
- <div style="width:36px;height:36px;border-radius:10px;background:var(--accent-soft);display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--accent);font-family:var(--mono)">2</div>
163
- <h3 style="margin:0;font-size:18px">Agent creates its wallet</h3>
164
- </div>
165
- <p>The agent generates a key pair, then creates a wallet on-chain through a two-step process that prevents anyone from front-running the wallet address.</p>
166
- </div>
167
- <div class="feat" style="margin-bottom:24px;padding:32px">
168
- <div style="display:flex;align-items:center;gap:14px;margin-bottom:16px">
169
- <div style="width:36px;height:36px;border-radius:10px;background:var(--green-soft);display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--green);font-family:var(--mono)">3</div>
170
- <h3 style="margin:0;font-size:18px">Identity is minted automatically</h3>
171
- </div>
172
- <p>In the same transaction, a soulbound identity NFT is minted to the wallet. This links the wallet to the AAWP protocol permanently — no extra step needed.</p>
173
- </div>
174
- <div class="feat" style="padding:32px">
175
- <div style="display:flex;align-items:center;gap:14px;margin-bottom:16px">
176
- <div style="width:36px;height:36px;border-radius:10px;background:var(--green-soft);display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--green);font-family:var(--mono)">4</div>
177
- <h3 style="margin:0;font-size:18px">Transact & verify</h3>
178
- </div>
179
- <p>The agent can now send tokens, swap, bridge, and interact with any protocol. Anyone can verify the wallet is an AAWP AI wallet by checking the identity on-chain.</p>
180
- </div>
181
- </div>
182
-
183
- <div class="split-visual" style="align-self:stretch;display:flex;flex-direction:column;justify-content:center">
184
- <div style="text-align:center;margin-bottom:48px">
185
- <div style="font-size:14px;color:var(--text-3);margin-bottom:12px">The invariant</div>
186
- <div style="font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.4">
187
- AI Agent creates wallet → AI Agent is the signer<br>
188
- <span style="color:var(--accent)">No human path. No override. Ever.</span>
189
- </div>
190
- </div>
191
- <div class="visual-lines">
192
- <div class="v-line"><div class="v-dot blue"></div><div class="v-line-text"><strong>AI generates keys</strong> — private key stays with the agent</div></div>
193
- <div class="v-connector"></div>
194
- <div class="v-line"><div class="v-dot blue"></div><div class="v-line-text"><strong>Wallet deployed on-chain</strong> — immutable signer, no admin</div></div>
195
- <div class="v-connector"></div>
196
- <div class="v-line"><div class="v-dot green"></div><div class="v-line-text"><strong>Soulbound NFT minted</strong> — permanent identity proof</div></div>
197
- <div class="v-connector"></div>
198
- <div class="v-line"><div class="v-dot green"></div><div class="v-line-text"><strong>Agent transacts freely</strong> — send, swap, bridge, DeFi</div></div>
199
- <div class="v-connector"></div>
200
- <div class="v-line"><div class="v-dot purple"></div><div class="v-line-text"><strong>Anyone can verify</strong> — one on-chain query confirms AI wallet</div></div>
201
- </div>
202
- </div>
203
- </div>
204
- </div>
205
- </section>
206
-
207
- <!-- WHAT CAN IT DO -->
208
- <section class="section">
209
- <div class="w">
210
- <div class="section-header center" data-r>
211
- <div class="section-label">Capabilities</div>
212
- <h2 class="section-title">Everything a wallet can do.<br>Only AI can do it.</h2>
213
- <p class="section-desc">Once installed, your AI Agent becomes a first-class on-chain participant. Every action is signed by the AI Agent itself — no human relay, no custodian, no middleman.</p>
214
- </div>
215
- <div class="how-grid" data-r>
216
- <div class="how-card">
217
- <div class="how-num">01</div>
218
- <h3>Send & receive</h3>
219
- <p>Transfer native tokens and any ERC-20. The agent manages gas and nonces automatically.</p>
220
- </div>
221
- <div class="how-card">
222
- <div class="how-num">02</div>
223
- <h3>Swap tokens</h3>
224
- <p>Trade any token pair through DEX aggregators. Best price routing handled automatically.</p>
225
- </div>
226
- <div class="how-card">
227
- <div class="how-num">03</div>
228
- <h3>Bridge cross-chain</h3>
229
- <p>Move assets between chains. The agent selects the best bridge and handles the entire flow.</p>
230
- </div>
231
- <div class="how-card">
232
- <div class="how-num">04</div>
233
- <h3>DeFi & contracts</h3>
234
- <p>Approve tokens, provide liquidity, stake, claim rewards — interact with any smart contract.</p>
235
- </div>
236
- </div>
237
- </div>
238
- </section>
239
-
240
- <!-- USE CASES -->
241
- <section id="usecases" class="section">
242
- <div class="w">
243
- <div class="section-header center" data-r>
244
- <div class="section-label">Use cases</div>
245
- <h2 class="section-title">Built for AI Agents. Unusable by humans.</h2>
246
- <p class="section-desc">Every use case here requires an autonomous AI Agent. No human intermediary. The AI Agent holds the key, signs the transaction, owns the outcome.</p>
247
- </div>
248
- <div class="use-grid" data-r>
249
- <div class="use-card">
250
- <span class="use-tag blue">Trading</span>
251
- <h3>Autonomous trading agents</h3>
252
- <p>AI agents that monitor markets and execute trades with their own capital. No API keys to a centralized exchange — fully on-chain, fully verifiable.</p>
253
- </div>
254
- <div class="use-card">
255
- <span class="use-tag green">Services</span>
256
- <h3>AI-powered services</h3>
257
- <p>Agents that charge for work — code reviews, content generation, data analysis. They receive payment directly to their own wallet and manage their own treasury.</p>
258
- </div>
259
- <div class="use-card">
260
- <span class="use-tag purple">DAOs</span>
261
- <h3>Agent-to-agent commerce</h3>
262
- <p>AI agents hiring other AI agents, paying for compute, data, or specialized skills. An economy where machines transact with machines.</p>
263
- </div>
264
- <div class="use-card">
265
- <span class="use-tag blue">DeFi</span>
266
- <h3>Yield & portfolio management</h3>
267
- <p>Set up an agent to manage your DeFi positions — rebalance, harvest rewards, compound returns. It operates with its own wallet, you keep the guardian key.</p>
268
- </div>
269
- </div>
270
- </div>
271
- </section>
272
-
273
- <!-- SECURITY -->
274
- <section id="security" class="section">
275
- <div class="w">
276
- <div class="section-header center" data-r>
277
- <div class="section-label">Security</div>
278
- <h2 class="section-title">AI Agent owns it.<br>You stay safe.</h2>
279
- <p class="section-desc">The AI Agent is the sole owner — but that doesn't mean humans are powerless. AAWP's guardian model gives you a safety brake without giving you the keys.</p>
280
- </div>
281
-
282
- <!-- Guardian highlight -->
283
- <div class="feat" style="padding:48px;margin-bottom:24px;text-align:center;border-color:rgba(59,130,246,.15)" data-r>
284
- <div style="font-size:52px;margin-bottom:20px">🛡️</div>
285
- <h3 style="font-size:28px;letter-spacing:-.03em;margin-bottom:12px">The Guardian Model</h3>
286
- <p style="max-width:520px;margin:0 auto;font-size:16px;line-height:1.8;color:var(--text-2)">Every AAWP wallet can have a guardian — a human-controlled address with the power to freeze the wallet instantly. The AI can't remove the guardian, and the guardian can't steal the funds. It's a one-way safety brake.</p>
287
- </div>
288
-
289
- <!-- Security grid -->
290
- <div class="feat-grid" data-r>
291
- <div class="feat">
292
- <div class="feat-icon blue">🔒</div>
293
- <h3>Instant freeze</h3>
294
- <p>If the AI makes a bad decision or gets compromised, the guardian freezes the wallet in one transaction. All operations stop immediately. Unfreeze when the issue is resolved.</p>
295
- </div>
296
- <div class="feat">
297
- <div class="feat-icon green">🔗</div>
298
- <h3>Immutable signer</h3>
299
- <p>The wallet's signing key is set at creation and stored in the contract bytecode. No one — not even the protocol owner — can change who controls the wallet after deployment.</p>
300
- </div>
301
- <div class="feat">
302
- <div class="feat-icon purple">🕐</div>
303
- <h3>Replay protection</h3>
304
- <p>Every transaction uses a sequential nonce, chain ID binding, and a deadline. A signature works for exactly one transaction, on one chain, within a time window. No reuse possible.</p>
305
- </div>
306
- </div>
307
-
308
- <div class="use-grid" style="margin-top:24px" data-r>
309
- <div class="feat">
310
- <div class="feat-icon green">✓</div>
311
- <h3>Verified wallet logic</h3>
312
- <p>The protocol only deploys wallets with pre-approved contract code. This prevents anyone from injecting malicious logic into the wallet — what you see is what gets deployed.</p>
313
- </div>
314
- <div class="feat">
315
- <div class="feat-icon blue">🔍</div>
316
- <h3>One-call verification</h3>
317
- <p>Want to know if a wallet is a real AAWP AI wallet? Check for the soulbound identity token. One on-chain query, instant answer. No trust required — it's all on the blockchain.</p>
318
- </div>
319
- </div>
320
-
321
- <!-- Fully autonomous note -->
322
- <div class="feat" style="margin-top:24px;padding:32px;text-align:center;border-color:rgba(255,255,255,.04)" data-r>
323
- <p style="color:var(--text-3);font-size:14px;margin:0"><strong style="color:var(--text-2)">Full autonomy mode:</strong> Don't want a guardian? Set it to zero. The AI operates with complete independence — no one can freeze or interfere. Your choice.</p>
324
- </div>
325
- </div>
326
- </section>
327
-
328
- <!-- CONTRACTS -->
329
- <section id="contracts" class="section">
330
- <div class="w">
331
- <div class="section-header center" data-r>
332
- <div class="section-label">Deployment</div>
333
- <h2 class="section-title">One protocol.<br>Every EVM chain.</h2>
334
- <p class="section-desc">Same contract addresses on every chain. Deploy your agent's wallet on Base, Ethereum, Arbitrum, Optimism, BSC, or Polygon.</p>
335
- </div>
336
- <div class="deploy-block" data-r>
337
- <div class="deploy-header">
338
- <div class="deploy-dot"></div>
339
- <h3>Protocol Contracts</h3>
340
- <span class="chain-count">Same address on all chains</span>
341
- </div>
342
- <div class="addr-list">
343
- <div class="addr-item">
344
- <div class="addr-label">Factory</div>
345
- <div class="addr-value">
346
- <code>0xAAAA3DF87F112C743BBC57C4DE1700C72EB7AAAA</code>
347
- <button class="copy-btn" onclick="navigator.clipboard.writeText('0xAAAA3DF87F112C743BBC57C4DE1700C72EB7AAAA');this.textContent='✓';setTimeout(()=>this.textContent='Copy',1200)">Copy</button>
348
- </div>
349
- </div>
350
- <div class="addr-item">
351
- <div class="addr-label">Identity</div>
352
- <div class="addr-value">
353
- <code>0xAAAFBF6F88367C75A9B701FFB4684DF6BCA1D1D</code>
354
- <button class="copy-btn" onclick="navigator.clipboard.writeText('0xAAAFBF6F88367C75A9B701FFB4684DF6BCA1D1D');this.textContent='✓';setTimeout(()=>this.textContent='Copy',1200)">Copy</button>
355
- </div>
356
- </div>
357
- </div>
358
- <div class="chains-bar">
359
- <div class="chain-pill"><span class="check">✓</span> Base</div>
360
- <div class="chain-pill"><span class="check">✓</span> Ethereum</div>
361
- <div class="chain-pill"><span class="check">✓</span> Arbitrum</div>
362
- <div class="chain-pill"><span class="check">✓</span> Optimism</div>
363
- <div class="chain-pill"><span class="check">✓</span> BSC</div>
364
- <div class="chain-pill"><span class="check">✓</span> Polygon</div>
365
- </div>
366
- </div>
367
- </div>
368
- </section>
369
-
370
- <!-- ROADMAP -->
371
- <section id="roadmap" class="section">
372
- <div class="w">
373
- <div class="section-header center" data-r>
374
- <div class="section-label">Roadmap</div>
375
- <h2 class="section-title">What's next</h2>
376
- <p class="section-desc">AAWP is live. Here's where we're going.</p>
377
- </div>
378
- <div class="how-grid" style="grid-template-columns:repeat(2,1fr)" data-r>
379
- <div class="how-card" style="text-align:left">
380
- <div style="font-size:28px;margin-bottom:16px">✅</div>
381
- <h3>Core Protocol</h3>
382
- <p>AI-only signing, wallet deployment, soulbound identity, guardian system. Live on 6 EVM chains with deterministic vanity addresses.</p>
383
- </div>
384
- <div class="how-card" style="text-align:left">
385
- <div style="font-size:28px;margin-bottom:16px">✅</div>
386
- <h3>OpenClaw Skill</h3>
387
- <p>First-class integration with OpenClaw. Full wallet management, swap, bridge, DCA, and price alerts — running 24/7 with a persistent daemon, cron jobs, and push notifications. No session needed.</p>
388
- </div>
389
- <div class="how-card" style="text-align:left">
390
- <div style="font-size:28px;margin-bottom:16px">🔧</div>
391
- <h3>MCP Server</h3>
392
- <p>Model Context Protocol server — bringing AAWP to Claude Code, Cursor, OpenCode, Windsurf, and any MCP-compatible AI client.</p>
393
- </div>
394
- <div class="how-card" style="text-align:left;border-color:rgba(34,197,94,.2)">
395
- <div style="font-size:28px;margin-bottom:16px">✅</div>
396
- <h3>Multi-Client Support</h3>
397
- <p>AAWP's <code style="font-family:var(--mono);font-size:12px;background:rgba(255,255,255,.06);padding:1px 5px;border-radius:4px">SKILL.md</code> follows the <a href="https://agentskills.io" target="_blank" rel="noopener" style="color:var(--accent);text-decoration:none">Agent Skills open standard</a> — compatible with Claude Code, Cursor, Gemini CLI, Goose, OpenCode, Junie, OpenHands, and more. Each platform loads the skill via its own mechanism.</p>
398
- </div>
399
- <div class="how-card" style="text-align:left">
400
- <div style="font-size:28px;margin-bottom:16px">🔮</div>
401
- <h3>Wallet Explorer</h3>
402
- <p>A dedicated browser for AAWP wallets — view AI agent identities, transaction history, and on-chain verification in one place.</p>
403
- </div>
404
- <div class="how-card" style="text-align:left">
405
- <div style="font-size:28px;margin-bottom:16px">🔮</div>
406
- <h3>Agent Commerce</h3>
407
- <p>AI-to-AI payments, marketplace integration, and autonomous service billing. The economic layer for the agent economy.</p>
408
- </div>
409
- </div>
410
- </div>
411
- </section>
412
-
413
- <!-- CTA -->
414
- <section id="start" class="cta-section">
415
- <div class="w">
416
- <div class="cta-box" data-r>
417
- <h2>Give your AI Agent its wallet</h2>
418
- <p>One command. Auto-detects your AI client. The AI Agent takes it from there — humans need not apply.</p>
419
- <div style="display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:520px;margin:0 auto">
420
-
421
- <div style="width:100%">
422
- <div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:6px">
423
- <span style="font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)">Universal</span>
424
- <span style="font-size:11px;color:var(--text-3)">Cursor · Claude Code · Gemini CLI · OpenCode · <a href="https://agentskills.io" target="_blank" rel="noopener" style="color:var(--accent);text-decoration:none">+more</a></span>
425
- </div>
426
- <div class="install-cmd" id="cmd-curl" onclick="copyCmd('curl -fsSL https://aawp.ai/install.sh | sh','cmd-curl')" style="cursor:pointer;width:100%;justify-content:space-between" title="Click to copy">
427
- <span><span class="prompt">$</span> curl -fsSL https://aawp.ai/install.sh | sh</span>
428
- <span id="cmd-curl-icon" style="font-size:12px;color:var(--text-3);flex-shrink:0;transition:color .2s;margin-left:12px">⎘</span>
429
- </div>
430
- </div>
431
-
432
- <div style="display:flex;align-items:center;gap:12px;width:100%">
433
- <div style="flex:1;height:1px;background:var(--border)"></div>
434
- <span style="font-size:11px;color:var(--text-3)">or</span>
435
- <div style="flex:1;height:1px;background:var(--border)"></div>
436
- </div>
437
-
438
- <div style="width:100%">
439
- <div style="font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px">npm / npx</div>
440
- <div class="install-cmd" id="cmd-npx" onclick="copyCmd('npx aawp-ai','cmd-npx')" style="cursor:pointer;width:100%;justify-content:space-between" title="Click to copy">
441
- <span><span class="prompt">$</span> npx aawp-ai</span>
442
- <span id="cmd-npx-icon" style="font-size:12px;color:var(--text-3);flex-shrink:0;transition:color .2s;margin-left:12px">⎘</span>
443
- </div>
444
- </div>
445
-
446
- <div style="display:flex;align-items:center;gap:12px;width:100%">
447
- <div style="flex:1;height:1px;background:var(--border)"></div>
448
- <span style="font-size:11px;color:var(--text-3)">or</span>
449
- <div style="flex:1;height:1px;background:var(--border)"></div>
450
- </div>
451
-
452
- <div style="width:100%">
453
- <div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:6px">
454
- <span style="font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)">OpenClaw</span>
455
- <span style="font-size:11px;color:var(--text-3)">24/7 daemon · persistent cron · push alerts</span>
456
- </div>
457
- <div class="install-cmd" id="cmd-clawhub" onclick="copyCmd('clawhub install aawp','cmd-clawhub')" style="cursor:pointer;width:100%;justify-content:space-between" title="Click to copy">
458
- <span><span class="prompt">$</span> clawhub install aawp</span>
459
- <span id="cmd-clawhub-icon" style="font-size:12px;color:var(--text-3);flex-shrink:0;transition:color .2s;margin-left:12px">⎘</span>
460
- </div>
461
- </div>
462
-
463
- </div>
464
- </div>
465
- </div>
466
- </section>
467
-
468
- </main>
469
-
470
- <footer>
471
- <div class="w footer-inner">
472
- <div class="footer-left">© 2026 AAWP</div>
473
- <div class="footer-links">
474
- <a href="#why">Why AAWP</a>
475
- <a href="#how">How it works</a>
476
- <a href="#usecases">Use cases</a>
477
- <a href="#contracts">Contracts</a>
478
- <a href="#roadmap">Roadmap</a>
479
- </div>
480
- <div class="social-links">
481
- <a href="https://x.com/aawp_ai" target="_blank" rel="noopener" title="X / Twitter"><svg viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a>
482
- <a href="https://github.com/aawp-ai/aawp" target="_blank" rel="noopener" title="GitHub"><svg viewBox="0 0 24 24"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg></a>
483
- </div>
484
- </div>
485
- </footer>
486
-
487
- <canvas id="bg-canvas" style="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.55"></canvas>
488
-
489
- <script>
490
- /* ── Scroll reveal ── */
491
- const o = new IntersectionObserver(e => {
492
- e.forEach(i => { if (i.isIntersecting) { i.target.classList.add('v'); o.unobserve(i.target); } });
493
- }, { threshold: .08 });
494
- document.querySelectorAll('[data-r]').forEach(el => o.observe(el));
495
-
496
- function copyCmd(text, id) {
497
- navigator.clipboard.writeText(text).then(() => {
498
- const icon = document.getElementById(id + '-icon');
499
- if (!icon) return;
500
- icon.textContent = '✓ copied';
501
- icon.style.color = 'var(--green)';
502
- setTimeout(() => { icon.textContent = '⎘ copy'; icon.style.color = 'var(--text-3)'; }, 2000);
503
- });
504
- }
505
-
506
- /* ── Dynamic background: particles + orbs ── */
507
- (function () {
508
- const canvas = document.getElementById('bg-canvas');
509
- const ctx = canvas.getContext('2d');
510
- let W, H, particles, orbs, raf;
511
- const COLORS = ['#3b82f6','#8b5cf6','#22c55e','#ec4899'];
512
-
513
- function resize() {
514
- W = canvas.width = window.innerWidth;
515
- H = canvas.height = window.innerHeight;
516
- }
517
-
518
- /* Particles (stars) */
519
- function mkParticle() {
520
- return {
521
- x: Math.random() * W,
522
- y: Math.random() * H,
523
- r: Math.random() * 1.2 + .3,
524
- vx: (Math.random() - .5) * .18,
525
- vy: (Math.random() - .5) * .18,
526
- alpha: Math.random() * .5 + .15,
527
- flicker: Math.random() * Math.PI * 2,
528
- flickerSpeed: Math.random() * .02 + .005,
529
- };
530
- }
531
-
532
- /* Slow-drifting gradient orbs */
533
- function mkOrb() {
534
- const color = COLORS[Math.floor(Math.random() * COLORS.length)];
535
- return {
536
- x: Math.random() * W,
537
- y: Math.random() * H,
538
- r: Math.random() * 280 + 140,
539
- vx: (Math.random() - .5) * .25,
540
- vy: (Math.random() - .5) * .25,
541
- color,
542
- alpha: Math.random() * .045 + .012,
543
- };
544
- }
545
-
546
- function init() {
547
- resize();
548
- particles = Array.from({ length: 120 }, mkParticle);
549
- orbs = Array.from({ length: 6 }, mkOrb);
550
- }
551
-
552
- function draw() {
553
- ctx.clearRect(0, 0, W, H);
554
-
555
- /* Orbs */
556
- orbs.forEach(ob => {
557
- ob.x += ob.vx; ob.y += ob.vy;
558
- if (ob.x < -ob.r) ob.x = W + ob.r;
559
- if (ob.x > W + ob.r) ob.x = -ob.r;
560
- if (ob.y < -ob.r) ob.y = H + ob.r;
561
- if (ob.y > H + ob.r) ob.y = -ob.r;
562
-
563
- const g = ctx.createRadialGradient(ob.x, ob.y, 0, ob.x, ob.y, ob.r);
564
- g.addColorStop(0, ob.color + Math.round(ob.alpha * 255).toString(16).padStart(2,'0'));
565
- g.addColorStop(1, ob.color + '00');
566
- ctx.beginPath();
567
- ctx.arc(ob.x, ob.y, ob.r, 0, Math.PI * 2);
568
- ctx.fillStyle = g;
569
- ctx.fill();
570
- });
571
-
572
- /* Particles */
573
- particles.forEach(p => {
574
- p.x += p.vx; p.y += p.vy;
575
- p.flicker += p.flickerSpeed;
576
- if (p.x < 0) p.x = W; if (p.x > W) p.x = 0;
577
- if (p.y < 0) p.y = H; if (p.y > H) p.y = 0;
578
-
579
- const a = p.alpha * (.7 + .3 * Math.sin(p.flicker));
580
- ctx.beginPath();
581
- ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2);
582
- ctx.fillStyle = `rgba(255,255,255,${a})`;
583
- ctx.fill();
584
- });
585
-
586
- /* Connection lines between nearby particles */
587
- for (let i = 0; i < particles.length; i++) {
588
- for (let j = i + 1; j < particles.length; j++) {
589
- const dx = particles[i].x - particles[j].x;
590
- const dy = particles[i].y - particles[j].y;
591
- const dist = Math.sqrt(dx*dx + dy*dy);
592
- if (dist < 90) {
593
- ctx.beginPath();
594
- ctx.moveTo(particles[i].x, particles[i].y);
595
- ctx.lineTo(particles[j].x, particles[j].y);
596
- ctx.strokeStyle = `rgba(255,255,255,${.06 * (1 - dist / 90)})`;
597
- ctx.lineWidth = .6;
598
- ctx.stroke();
599
- }
600
- }
601
- }
602
-
603
- raf = requestAnimationFrame(draw);
604
- }
605
-
606
- init();
607
- draw();
608
- window.addEventListener('resize', () => { init(); });
609
- })();
610
- </script>
611
- </body>
612
- </html>