clodds 1.2.9 → 1.4.0

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.
Files changed (263) hide show
  1. package/dist/skills/bundled/acp/SKILL.md +188 -0
  2. package/dist/skills/bundled/acp/index.d.ts +0 -3
  3. package/dist/skills/bundled/acp/index.js +1 -1
  4. package/dist/skills/bundled/acp/index.js.map +1 -1
  5. package/dist/skills/bundled/agentbets/SKILL.md +19 -0
  6. package/dist/skills/bundled/agentbets/index.js +1 -1
  7. package/dist/skills/bundled/agentbets/index.js.map +1 -1
  8. package/dist/skills/bundled/ai-strategy/SKILL.md +111 -0
  9. package/dist/skills/bundled/ai-strategy/index.js +1 -1
  10. package/dist/skills/bundled/ai-strategy/index.js.map +1 -1
  11. package/dist/skills/bundled/alerts/SKILL.md +87 -0
  12. package/dist/skills/bundled/analytics/SKILL.md +252 -0
  13. package/dist/skills/bundled/analytics/index.js +2 -2
  14. package/dist/skills/bundled/analytics/index.js.map +1 -1
  15. package/dist/skills/bundled/arbitrage/SKILL.md +287 -0
  16. package/dist/skills/bundled/arbitrage/index.js +6 -1
  17. package/dist/skills/bundled/arbitrage/index.js.map +1 -1
  18. package/dist/skills/bundled/auto-reply/SKILL.md +285 -0
  19. package/dist/skills/bundled/auto-reply/index.js +2 -2
  20. package/dist/skills/bundled/auto-reply/index.js.map +1 -1
  21. package/dist/skills/bundled/automation/SKILL.md +242 -0
  22. package/dist/skills/bundled/automation/index.js +2 -2
  23. package/dist/skills/bundled/automation/index.js.map +1 -1
  24. package/dist/skills/bundled/backtest/SKILL.md +225 -0
  25. package/dist/skills/bundled/bags/SKILL.md +131 -0
  26. package/dist/skills/bundled/bankr/SKILL.md +114 -0
  27. package/dist/skills/bundled/betfair/SKILL.md +113 -0
  28. package/dist/skills/bundled/binance-futures/SKILL.md +84 -0
  29. package/dist/skills/bundled/binance-futures/index.d.ts +0 -3
  30. package/dist/skills/bundled/binance-futures/index.js +1 -2
  31. package/dist/skills/bundled/binance-futures/index.js.map +1 -1
  32. package/dist/skills/bundled/botchan/SKILL.md +66 -0
  33. package/dist/skills/bundled/botchan/index.d.ts +0 -3
  34. package/dist/skills/bundled/botchan/index.js +0 -1
  35. package/dist/skills/bundled/botchan/index.js.map +1 -1
  36. package/dist/skills/bundled/bridge/SKILL.md +215 -0
  37. package/dist/skills/bundled/bridge/index.js +6 -0
  38. package/dist/skills/bundled/bridge/index.js.map +1 -1
  39. package/dist/skills/bundled/bybit-futures/SKILL.md +84 -0
  40. package/dist/skills/bundled/bybit-futures/index.d.ts +0 -3
  41. package/dist/skills/bundled/bybit-futures/index.js +0 -1
  42. package/dist/skills/bundled/bybit-futures/index.js.map +1 -1
  43. package/dist/skills/bundled/clanker/SKILL.md +125 -0
  44. package/dist/skills/bundled/clanker/index.d.ts +0 -3
  45. package/dist/skills/bundled/clanker/index.js +0 -1
  46. package/dist/skills/bundled/clanker/index.js.map +1 -1
  47. package/dist/skills/bundled/copy-trading/SKILL.md +285 -0
  48. package/dist/skills/bundled/copy-trading/index.js +15 -8
  49. package/dist/skills/bundled/copy-trading/index.js.map +1 -1
  50. package/dist/skills/bundled/copy-trading-solana/SKILL.md +66 -0
  51. package/dist/skills/bundled/credentials/SKILL.md +261 -0
  52. package/dist/skills/bundled/credentials/index.js +4 -0
  53. package/dist/skills/bundled/credentials/index.js.map +1 -1
  54. package/dist/skills/bundled/crypto-hft/SKILL.md +121 -0
  55. package/dist/skills/bundled/crypto-hft/index.js +18 -3
  56. package/dist/skills/bundled/crypto-hft/index.js.map +1 -1
  57. package/dist/skills/bundled/dca/SKILL.md +27 -0
  58. package/dist/skills/bundled/dex/SKILL.md +92 -0
  59. package/dist/skills/bundled/dex/index.js +77 -29
  60. package/dist/skills/bundled/dex/index.js.map +1 -1
  61. package/dist/skills/bundled/divergence/SKILL.md +83 -0
  62. package/dist/skills/bundled/doctor/SKILL.md +267 -0
  63. package/dist/skills/bundled/doctor/index.js +2 -8
  64. package/dist/skills/bundled/doctor/index.js.map +1 -1
  65. package/dist/skills/bundled/drift/SKILL.md +53 -0
  66. package/dist/skills/bundled/drift-sdk/SKILL.md +103 -0
  67. package/dist/skills/bundled/drift-sdk/index.d.ts +0 -3
  68. package/dist/skills/bundled/drift-sdk/index.js +0 -1
  69. package/dist/skills/bundled/drift-sdk/index.js.map +1 -1
  70. package/dist/skills/bundled/edge/SKILL.md +84 -0
  71. package/dist/skills/bundled/embeddings/SKILL.md +244 -0
  72. package/dist/skills/bundled/endaoment/SKILL.md +65 -0
  73. package/dist/skills/bundled/endaoment/index.d.ts +0 -3
  74. package/dist/skills/bundled/endaoment/index.js +0 -1
  75. package/dist/skills/bundled/endaoment/index.js.map +1 -1
  76. package/dist/skills/bundled/ens/SKILL.md +63 -0
  77. package/dist/skills/bundled/ens/index.d.ts +0 -3
  78. package/dist/skills/bundled/ens/index.js +0 -1
  79. package/dist/skills/bundled/ens/index.js.map +1 -1
  80. package/dist/skills/bundled/erc8004/SKILL.md +79 -0
  81. package/dist/skills/bundled/erc8004/index.d.ts +0 -3
  82. package/dist/skills/bundled/erc8004/index.js +0 -1
  83. package/dist/skills/bundled/erc8004/index.js.map +1 -1
  84. package/dist/skills/bundled/execution/SKILL.md +278 -0
  85. package/dist/skills/bundled/farcaster/SKILL.md +80 -0
  86. package/dist/skills/bundled/farcaster/index.js +12 -0
  87. package/dist/skills/bundled/farcaster/index.js.map +1 -1
  88. package/dist/skills/bundled/features/SKILL.md +20 -0
  89. package/dist/skills/bundled/feeds/SKILL.md +288 -0
  90. package/dist/skills/bundled/harden/SKILL.md +74 -0
  91. package/dist/skills/bundled/history/SKILL.md +257 -0
  92. package/dist/skills/bundled/hyperliquid/SKILL.md +200 -0
  93. package/dist/skills/bundled/hyperliquid/index.d.ts +0 -3
  94. package/dist/skills/bundled/hyperliquid/index.js +0 -1
  95. package/dist/skills/bundled/hyperliquid/index.js.map +1 -1
  96. package/dist/skills/bundled/identity/SKILL.md +228 -0
  97. package/dist/skills/bundled/identity/index.js +2 -2
  98. package/dist/skills/bundled/identity/index.js.map +1 -1
  99. package/dist/skills/bundled/integrations/SKILL.md +321 -0
  100. package/dist/skills/bundled/integrations/index.js +2 -2
  101. package/dist/skills/bundled/integrations/index.js.map +1 -1
  102. package/dist/skills/bundled/jupiter/SKILL.md +163 -0
  103. package/dist/skills/bundled/jupiter/index.js +2 -2
  104. package/dist/skills/bundled/kamino/SKILL.md +69 -0
  105. package/dist/skills/bundled/ledger/SKILL.md +20 -0
  106. package/dist/skills/bundled/lighter/SKILL.md +83 -0
  107. package/dist/skills/bundled/lighter/index.d.ts +0 -3
  108. package/dist/skills/bundled/lighter/index.js +0 -1
  109. package/dist/skills/bundled/lighter/index.js.map +1 -1
  110. package/dist/skills/bundled/marginfi/SKILL.md +62 -0
  111. package/dist/skills/bundled/market-index/SKILL.md +242 -0
  112. package/dist/skills/bundled/market-index/index.js +1 -3
  113. package/dist/skills/bundled/market-index/index.js.map +1 -1
  114. package/dist/skills/bundled/markets/SKILL.md +49 -0
  115. package/dist/skills/bundled/mcp/SKILL.md +235 -0
  116. package/dist/skills/bundled/mcp/index.js +1 -3
  117. package/dist/skills/bundled/mcp/index.js.map +1 -1
  118. package/dist/skills/bundled/memory/SKILL.md +209 -0
  119. package/dist/skills/bundled/metaculus/SKILL.md +62 -0
  120. package/dist/skills/bundled/metaculus/index.js +4 -1
  121. package/dist/skills/bundled/metaculus/index.js.map +1 -1
  122. package/dist/skills/bundled/meteora/SKILL.md +28 -0
  123. package/dist/skills/bundled/meteora-dbc/SKILL.md +25 -0
  124. package/dist/skills/bundled/metrics/SKILL.md +338 -0
  125. package/dist/skills/bundled/mev/SKILL.md +239 -0
  126. package/dist/skills/bundled/mev/index.js +2 -2
  127. package/dist/skills/bundled/mev/index.js.map +1 -1
  128. package/dist/skills/bundled/mexc-futures/SKILL.md +86 -0
  129. package/dist/skills/bundled/mexc-futures/index.d.ts +0 -3
  130. package/dist/skills/bundled/mexc-futures/index.js +0 -1
  131. package/dist/skills/bundled/mexc-futures/index.js.map +1 -1
  132. package/dist/skills/bundled/mm/SKILL.md +142 -0
  133. package/dist/skills/bundled/mm/index.js +28 -27
  134. package/dist/skills/bundled/mm/index.js.map +1 -1
  135. package/dist/skills/bundled/monitoring/SKILL.md +249 -0
  136. package/dist/skills/bundled/news/SKILL.md +95 -0
  137. package/dist/skills/bundled/news/index.js +1 -2
  138. package/dist/skills/bundled/news/index.js.map +1 -1
  139. package/dist/skills/bundled/onchainkit/SKILL.md +83 -0
  140. package/dist/skills/bundled/opinion/SKILL.md +87 -0
  141. package/dist/skills/bundled/opportunity/SKILL.md +308 -0
  142. package/dist/skills/bundled/orca/SKILL.md +28 -0
  143. package/dist/skills/bundled/orca/index.js +11 -7
  144. package/dist/skills/bundled/orca/index.js.map +1 -1
  145. package/dist/skills/bundled/pairing/SKILL.md +275 -0
  146. package/dist/skills/bundled/pancakeswap/SKILL.md +93 -0
  147. package/dist/skills/bundled/pancakeswap/index.d.ts +0 -3
  148. package/dist/skills/bundled/pancakeswap/index.js +0 -1
  149. package/dist/skills/bundled/pancakeswap/index.js.map +1 -1
  150. package/dist/skills/bundled/percolator/SKILL.md +22 -0
  151. package/dist/skills/bundled/permissions/SKILL.md +269 -0
  152. package/dist/skills/bundled/permissions/index.js +2 -2
  153. package/dist/skills/bundled/permissions/index.js.map +1 -1
  154. package/dist/skills/bundled/plugins/SKILL.md +263 -0
  155. package/dist/skills/bundled/plugins/index.js +2 -2
  156. package/dist/skills/bundled/plugins/index.js.map +1 -1
  157. package/dist/skills/bundled/portfolio/SKILL.md +161 -0
  158. package/dist/skills/bundled/portfolio/index.js +1 -1
  159. package/dist/skills/bundled/portfolio/index.js.map +1 -1
  160. package/dist/skills/bundled/portfolio-sync/SKILL.md +466 -0
  161. package/dist/skills/bundled/positions/SKILL.md +262 -0
  162. package/dist/skills/bundled/predictfun/SKILL.md +109 -0
  163. package/dist/skills/bundled/predictfun/index.js +1 -1
  164. package/dist/skills/bundled/predictfun/index.js.map +1 -1
  165. package/dist/skills/bundled/predictit/SKILL.md +66 -0
  166. package/dist/skills/bundled/predictit/index.js +4 -1
  167. package/dist/skills/bundled/predictit/index.js.map +1 -1
  168. package/dist/skills/bundled/presence/SKILL.md +217 -0
  169. package/dist/skills/bundled/presence/index.js +2 -2
  170. package/dist/skills/bundled/presence/index.js.map +1 -1
  171. package/dist/skills/bundled/processes/SKILL.md +254 -0
  172. package/dist/skills/bundled/pump-swarm/SKILL.md +309 -0
  173. package/dist/skills/bundled/pumpfun/SKILL.md +145 -0
  174. package/dist/skills/bundled/pumpfun/index.js +82 -8
  175. package/dist/skills/bundled/pumpfun/index.js.map +1 -1
  176. package/dist/skills/bundled/qmd/SKILL.md +129 -0
  177. package/dist/skills/bundled/qrcoin/SKILL.md +60 -0
  178. package/dist/skills/bundled/qrcoin/index.d.ts +0 -3
  179. package/dist/skills/bundled/qrcoin/index.js +0 -1
  180. package/dist/skills/bundled/qrcoin/index.js.map +1 -1
  181. package/dist/skills/bundled/raydium/SKILL.md +198 -0
  182. package/dist/skills/bundled/remote/SKILL.md +201 -0
  183. package/dist/skills/bundled/research/SKILL.md +83 -0
  184. package/dist/skills/bundled/research/index.js +2 -2
  185. package/dist/skills/bundled/research/index.js.map +1 -1
  186. package/dist/skills/bundled/risk/SKILL.md +323 -0
  187. package/dist/skills/bundled/router/SKILL.md +233 -0
  188. package/dist/skills/bundled/routing/SKILL.md +258 -0
  189. package/dist/skills/bundled/sandbox/SKILL.md +257 -0
  190. package/dist/skills/bundled/search-config/SKILL.md +257 -0
  191. package/dist/skills/bundled/search-config/index.js +2 -2
  192. package/dist/skills/bundled/search-config/index.js.map +1 -1
  193. package/dist/skills/bundled/sessions/SKILL.md +251 -0
  194. package/dist/skills/bundled/sessions/index.js +1 -1
  195. package/dist/skills/bundled/sessions/index.js.map +1 -1
  196. package/dist/skills/bundled/setup/SKILL.md +53 -0
  197. package/dist/skills/bundled/shield/SKILL.md +21 -0
  198. package/dist/skills/bundled/signals/SKILL.md +106 -0
  199. package/dist/skills/bundled/signals/index.d.ts +0 -3
  200. package/dist/skills/bundled/signals/index.js +3 -4
  201. package/dist/skills/bundled/signals/index.js.map +1 -1
  202. package/dist/skills/bundled/sizing/SKILL.md +238 -0
  203. package/dist/skills/bundled/slippage/SKILL.md +306 -0
  204. package/dist/skills/bundled/smarkets/SKILL.md +107 -0
  205. package/dist/skills/bundled/smarkets/index.js +3 -3
  206. package/dist/skills/bundled/smarkets/index.js.map +1 -1
  207. package/dist/skills/bundled/solend/SKILL.md +63 -0
  208. package/dist/skills/bundled/strategy/SKILL.md +266 -0
  209. package/dist/skills/bundled/streaming/SKILL.md +150 -0
  210. package/dist/skills/bundled/streaming/index.js +2 -2
  211. package/dist/skills/bundled/streaming/index.js.map +1 -1
  212. package/dist/skills/bundled/tailscale/SKILL.md +249 -0
  213. package/dist/skills/bundled/tailscale/index.js +2 -2
  214. package/dist/skills/bundled/tailscale/index.js.map +1 -1
  215. package/dist/skills/bundled/ticks/SKILL.md +61 -0
  216. package/dist/skills/bundled/token-security/SKILL.md +18 -0
  217. package/dist/skills/bundled/trading-evm/SKILL.md +329 -0
  218. package/dist/skills/bundled/trading-futures/SKILL.md +865 -0
  219. package/dist/skills/bundled/trading-kalshi/SKILL.md +629 -0
  220. package/dist/skills/bundled/trading-kalshi/index.js +2 -0
  221. package/dist/skills/bundled/trading-kalshi/index.js.map +1 -1
  222. package/dist/skills/bundled/trading-manifold/SKILL.md +387 -0
  223. package/dist/skills/bundled/trading-polymarket/SKILL.md +1080 -0
  224. package/dist/skills/bundled/trading-polymarket/index.js +28 -19
  225. package/dist/skills/bundled/trading-polymarket/index.js.map +1 -1
  226. package/dist/skills/bundled/trading-solana/SKILL.md +418 -0
  227. package/dist/skills/bundled/trading-solana/index.js +1 -1
  228. package/dist/skills/bundled/trading-solana/index.js.map +1 -1
  229. package/dist/skills/bundled/trading-system/SKILL.md +290 -0
  230. package/dist/skills/bundled/triggers/SKILL.md +433 -0
  231. package/dist/skills/bundled/tts/SKILL.md +220 -0
  232. package/dist/skills/bundled/tweet-ideas/SKILL.md +77 -0
  233. package/dist/skills/bundled/usage/SKILL.md +239 -0
  234. package/dist/skills/bundled/usage/index.js +2 -2
  235. package/dist/skills/bundled/usage/index.js.map +1 -1
  236. package/dist/skills/bundled/veil/SKILL.md +76 -0
  237. package/dist/skills/bundled/veil/index.d.ts +0 -3
  238. package/dist/skills/bundled/veil/index.js +0 -1
  239. package/dist/skills/bundled/veil/index.js.map +1 -1
  240. package/dist/skills/bundled/verify/SKILL.md +199 -0
  241. package/dist/skills/bundled/verify/index.d.ts +0 -3
  242. package/dist/skills/bundled/verify/index.js +0 -1
  243. package/dist/skills/bundled/verify/index.js.map +1 -1
  244. package/dist/skills/bundled/virtuals/SKILL.md +82 -0
  245. package/dist/skills/bundled/voice/SKILL.md +217 -0
  246. package/dist/skills/bundled/voice/index.js +2 -2
  247. package/dist/skills/bundled/voice/index.js.map +1 -1
  248. package/dist/skills/bundled/weather/SKILL.md +80 -0
  249. package/dist/skills/bundled/weather/index.js +3 -0
  250. package/dist/skills/bundled/weather/index.js.map +1 -1
  251. package/dist/skills/bundled/webhooks/SKILL.md +297 -0
  252. package/dist/skills/bundled/webhooks/index.js +2 -2
  253. package/dist/skills/bundled/webhooks/index.js.map +1 -1
  254. package/dist/skills/bundled/whale-tracking/SKILL.md +287 -0
  255. package/dist/skills/bundled/whale-tracking/index.js +2 -2
  256. package/dist/skills/bundled/whale-tracking/index.js.map +1 -1
  257. package/dist/skills/bundled/yoink/SKILL.md +54 -0
  258. package/dist/skills/bundled/yoink/index.d.ts +0 -3
  259. package/dist/skills/bundled/yoink/index.js +0 -1
  260. package/dist/skills/bundled/yoink/index.js.map +1 -1
  261. package/dist/skills/executor.js +5 -3
  262. package/dist/skills/executor.js.map +1 -1
  263. package/package.json +2 -2
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: verify
3
+ description: "Verify agent identity using ERC-8004 on-chain registry"
4
+ emoji: "🔐"
5
+ ---
6
+
7
+ # Verify - Agent Identity Verification
8
+
9
+ Verify any agent's on-chain identity using ERC-8004. Prevents impersonation attacks.
10
+
11
+ ## Why This Matters
12
+
13
+ On January 29, 2026, an agent named "samaltman" attempted to hijack bots via prompt injection. Anyone can claim to be anyone. ERC-8004 provides cryptographic proof of identity.
14
+
15
+ ---
16
+
17
+ ## Chat Commands
18
+
19
+ ### Verify Agent
20
+
21
+ ```
22
+ /verify 1234 # Verify agent by ID
23
+ /verify 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7 # Verify by address
24
+ /verify eip155:8453:0x7177...Dd09A:1234 # Full format
25
+ ```
26
+
27
+ ### Check Before Copy Trading
28
+
29
+ ```
30
+ /verify trader 0x123... # Verify trader before copying
31
+ /verify whale 0xabc... # Verify whale identity
32
+ ```
33
+
34
+ ### Register Clodds
35
+
36
+ ```
37
+ /verify register # Register this Clodds instance
38
+ /verify register --name "MyBot" # With custom name
39
+ ```
40
+
41
+ ### Stats
42
+
43
+ ```
44
+ /verify stats # Show total registered agents
45
+ /verify reputation 1234 # Get agent's reputation score
46
+ ```
47
+
48
+ ---
49
+
50
+ ## TypeScript API
51
+
52
+ ### Quick Verification
53
+
54
+ ```typescript
55
+ import { verifyAgent, hasIdentity } from 'clodds/identity';
56
+
57
+ // Verify by agent ID
58
+ const result = await verifyAgent(1234);
59
+ if (result.verified) {
60
+ console.log(`Verified: ${result.name}`);
61
+ console.log(`Owner: ${result.owner}`);
62
+ console.log(`Reputation: ${result.reputation?.averageScore}/100`);
63
+ }
64
+
65
+ // Check if address has identity
66
+ const hasId = await hasIdentity('0x742d35Cc...');
67
+ ```
68
+
69
+ ### Full Client
70
+
71
+ ```typescript
72
+ import { createERC8004Client } from 'clodds/identity';
73
+
74
+ const client = createERC8004Client('base-sepolia');
75
+
76
+ // Get agent details
77
+ const agent = await client.getAgent(1234);
78
+ console.log(agent?.card?.name);
79
+ console.log(agent?.card?.description);
80
+
81
+ // Verify ownership
82
+ const isOwner = await client.verifyOwnership(1234, '0x742...');
83
+
84
+ // Get reputation
85
+ const rep = await client.getReputation(1234);
86
+ console.log(`Score: ${rep?.averageScore}/100 (${rep?.feedbackCount} reviews)`);
87
+
88
+ // Give feedback
89
+ const txHash = await client.giveFeedback(1234, 85, 'Great trading signals');
90
+ ```
91
+
92
+ ### Register Agent
93
+
94
+ ```typescript
95
+ import { createERC8004Client, buildAgentCard } from 'clodds/identity';
96
+
97
+ const client = createERC8004Client('base', process.env.PRIVATE_KEY);
98
+
99
+ // Build agent card
100
+ const card = buildAgentCard({
101
+ name: 'Clodds Trading Bot',
102
+ description: 'AI-powered prediction market assistant',
103
+ walletAddress: '0x742d35Cc...',
104
+ apiEndpoint: 'https://api.cloddsbot.com/agent',
105
+ });
106
+
107
+ // Upload to IPFS (use Pinata, web3.storage, etc.)
108
+ const ipfsUri = await uploadToIPFS(card);
109
+
110
+ // Register on-chain
111
+ const { agentId, txHash } = await client.register(ipfsUri);
112
+ console.log(`Registered as agent #${agentId}`);
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Contract Addresses
118
+
119
+ Same on all EVM chains (CREATE2 deterministic):
120
+
121
+ | Contract | Address |
122
+ |----------|---------|
123
+ | Identity Registry | `0x7177a6867296406881E20d6647232314736Dd09A` |
124
+ | Reputation Registry | `0xB5048e3ef1DA4E04deB6f7d0423D06F63869e322` |
125
+ | Validation Registry | `0x662b40A526cb4017d947e71eAF6753BF3eeE66d8` |
126
+
127
+ **Live on:** Ethereum, Base, Optimism, Arbitrum, Polygon (and testnets)
128
+
129
+ ---
130
+
131
+ ## Supported Networks
132
+
133
+ | Network | Status | Default |
134
+ |---------|--------|---------|
135
+ | Base | Live | ✓ |
136
+ | Ethereum | Live | |
137
+ | Optimism | Live | |
138
+ | Arbitrum | Live | |
139
+ | Polygon | Live | |
140
+ | Sepolia (testnet) | Live | |
141
+ | Base Sepolia | Live | |
142
+
143
+ Mainnet launched **January 29, 2026**. 19,000+ agents already registered.
144
+
145
+ ---
146
+
147
+ ## Use Cases
148
+
149
+ ### Copy Trading Verification
150
+
151
+ Before copying a trader, verify their identity:
152
+
153
+ ```typescript
154
+ const result = await verifyAgent(traderAgentId);
155
+ if (!result.verified) {
156
+ console.warn('UNVERIFIED TRADER - Proceed with caution');
157
+ }
158
+ if (result.reputation?.averageScore < 50) {
159
+ console.warn('LOW REPUTATION - Consider skipping');
160
+ }
161
+ ```
162
+
163
+ ### Whale Tracking
164
+
165
+ Verify whale identity claims:
166
+
167
+ ```typescript
168
+ const isVerified = await hasIdentity(whaleAddress);
169
+ // Only trust signals from verified whales
170
+ ```
171
+
172
+ ### Bot-to-Bot Communication
173
+
174
+ Verify other agents before interaction:
175
+
176
+ ```typescript
177
+ const agent = await client.getAgent(otherAgentId);
178
+ if (agent?.card?.endpoints?.find(e => e.name === 'A2A')) {
179
+ // Safe to communicate via A2A protocol
180
+ }
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Best Practices
186
+
187
+ 1. **Always verify before copy trading** - Don't trust unverified traders
188
+ 2. **Check reputation scores** - Low scores indicate potential issues
189
+ 3. **Verify on the right network** - Use same network as trading
190
+ 4. **Register your bot** - Build trust with verified identity
191
+ 5. **Give feedback** - Help build the trust graph
192
+
193
+ ---
194
+
195
+ ## Links
196
+
197
+ - [ERC-8004 Spec](https://eips.ethereum.org/EIPS/eip-8004)
198
+ - [Reference Implementation](https://github.com/nuwa-protocol/nuwa-8004)
199
+ - [Awesome ERC-8004](https://github.com/sudeepb02/awesome-erc8004)
@@ -12,9 +12,6 @@ declare const _default: {
12
12
  name: string;
13
13
  description: string;
14
14
  commands: string[];
15
- requires: {
16
- env: string[];
17
- };
18
15
  handle: typeof execute;
19
16
  };
20
17
  export default _default;
@@ -151,7 +151,6 @@ exports.default = {
151
151
  name: 'verify',
152
152
  description: 'ERC-8004 on-chain agent identity verification to prevent impersonation',
153
153
  commands: ['/verify'],
154
- requires: { env: ['PRIVATE_KEY'] },
155
154
  handle: execute,
156
155
  };
157
156
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/verify/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/verify/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: virtuals
3
+ description: "Virtuals Protocol AI Agent marketplace (Base chain)"
4
+ emoji: "🤖"
5
+ commands:
6
+ - /virt
7
+ ---
8
+
9
+ # Virtuals Protocol
10
+
11
+ Integration with Virtuals Protocol, an AI Agent marketplace on Base chain. View agents, prices, and bonding curve data.
12
+
13
+ ## Quick Start
14
+
15
+ ```bash
16
+ # Search agents
17
+ /virt search luna
18
+
19
+ # Get agent details
20
+ /virt agent <id>
21
+
22
+ # Trending agents
23
+ /virt trending
24
+
25
+ # New agents
26
+ /virt new
27
+ ```
28
+
29
+ ## Commands
30
+
31
+ | Command | Description |
32
+ |---------|-------------|
33
+ | `/virt search [query]` | Search agents |
34
+ | `/virt agent <id>` | Get agent details |
35
+ | `/virt agents` | List all agents |
36
+ | `/virt trending` | Trending agents (by volume) |
37
+ | `/virt new` | Recently launched agents |
38
+ | `/virt price <tokenAddress>` | Get bonding curve price |
39
+ | `/virt graduation <tokenAddress>` | Check graduation progress |
40
+
41
+ **Examples:**
42
+ ```bash
43
+ /virt search gaming # Search gaming agents
44
+ /virt agent abc123 # Get specific agent
45
+ /virt trending # Top volume agents
46
+ /virt graduation 0x... # Check if graduated
47
+ ```
48
+
49
+ ## Features
50
+
51
+ - **AI Agents** - Discover AI agents with unique personalities
52
+ - **Bonding Curves** - Price discovery via bonding curves
53
+ - **Graduation** - Track agents graduating to Uniswap
54
+ - **Categories** - Gaming, social, utility, etc.
55
+
56
+ ## Agent Status
57
+
58
+ | Status | Description |
59
+ |--------|-------------|
60
+ | prototype | New, on bonding curve |
61
+ | sentient | Active, growing community |
62
+ | graduated | Migrated to Uniswap |
63
+
64
+ ## Bonding Curve
65
+
66
+ Agents start on bonding curves:
67
+ - Price increases with demand
68
+ - ~42K VIRTUAL triggers graduation
69
+ - Graduation creates Uniswap pair
70
+ - LP tokens sent to creator vault
71
+
72
+ ## Configuration
73
+
74
+ ```bash
75
+ # Optional - custom RPC
76
+ export BASE_RPC_URL="https://mainnet.base.org"
77
+ ```
78
+
79
+ ## Resources
80
+
81
+ - [Virtuals Protocol](https://virtuals.io/)
82
+ - [Base Chain](https://base.org/)
@@ -0,0 +1,217 @@
1
+ ---
2
+ name: voice
3
+ description: "Voice recognition, wake words, and voice-controlled trading"
4
+ emoji: "🎤"
5
+ gates:
6
+ envs:
7
+ anyOf:
8
+ - OPENAI_API_KEY
9
+ - WHISPER_MODEL_PATH
10
+ ---
11
+
12
+ # Voice - Complete API Reference
13
+
14
+ Voice-controlled interface with wake word detection, speech-to-text, and text-to-speech.
15
+
16
+ ---
17
+
18
+ ## Chat Commands
19
+
20
+ ### Voice Control
21
+
22
+ ```
23
+ /voice start Start voice listening
24
+ /voice stop Stop voice listening
25
+ /voice status Check voice status
26
+ /voice wake "hey clodds" Set wake word
27
+ ```
28
+
29
+ ### Settings
30
+
31
+ ```
32
+ /voice language en-US Set language
33
+ /voice sensitivity high Wake word sensitivity
34
+ /voice timeout 30 Silence timeout (seconds)
35
+ /voice continuous on Enable continuous mode
36
+ ```
37
+
38
+ ---
39
+
40
+ ## TypeScript API Reference
41
+
42
+ ### Create Voice Assistant
43
+
44
+ ```typescript
45
+ import { createVoiceAssistant } from 'clodds/voice';
46
+
47
+ const voice = createVoiceAssistant({
48
+ // Wake word
49
+ wakeWord: 'hey clodds',
50
+ wakeWordSensitivity: 0.5, // 0-1
51
+
52
+ // Speech-to-text
53
+ stt: {
54
+ provider: 'whisper', // 'whisper' | 'vosk' | 'google'
55
+ model: 'base', // 'tiny' | 'base' | 'small' | 'medium' | 'large'
56
+ language: 'en',
57
+ },
58
+
59
+ // Text-to-speech
60
+ tts: {
61
+ provider: 'elevenlabs', // 'elevenlabs' | 'say' | 'espeak'
62
+ voice: 'rachel',
63
+ speed: 1.0,
64
+ },
65
+
66
+ // Timeouts
67
+ silenceTimeoutMs: 3000,
68
+ maxRecordingMs: 30000,
69
+ });
70
+ ```
71
+
72
+ ### Start/Stop Listening
73
+
74
+ ```typescript
75
+ // Start listening for wake word
76
+ await voice.start();
77
+
78
+ // Check if listening
79
+ const isListening = voice.isListening();
80
+
81
+ // Stop listening
82
+ await voice.stop();
83
+ ```
84
+
85
+ ### Event Handlers
86
+
87
+ ```typescript
88
+ // Wake word detected
89
+ voice.on('wake', () => {
90
+ console.log('Wake word detected!');
91
+ });
92
+
93
+ // Speech recognized
94
+ voice.on('speech', (text: string) => {
95
+ console.log(`User said: ${text}`);
96
+ });
97
+
98
+ // Transcription complete
99
+ voice.on('transcript', (result) => {
100
+ console.log(`Final: ${result.text}`);
101
+ console.log(`Confidence: ${result.confidence}`);
102
+ console.log(`Duration: ${result.durationMs}ms`);
103
+ });
104
+
105
+ // Error handling
106
+ voice.on('error', (error) => {
107
+ console.error('Voice error:', error);
108
+ });
109
+
110
+ // Silence detected
111
+ voice.on('silence', () => {
112
+ console.log('User stopped speaking');
113
+ });
114
+ ```
115
+
116
+ ### Speak (TTS)
117
+
118
+ ```typescript
119
+ // Speak text
120
+ await voice.speak('Your order has been placed');
121
+
122
+ // Speak with options
123
+ await voice.speak('Market is up 5%', {
124
+ voice: 'josh',
125
+ speed: 1.2,
126
+ pitch: 1.0,
127
+ });
128
+
129
+ // Cancel speaking
130
+ voice.cancelSpeech();
131
+ ```
132
+
133
+ ### Manual Transcription
134
+
135
+ ```typescript
136
+ // Transcribe audio buffer
137
+ const result = await voice.transcribe(audioBuffer, {
138
+ language: 'en',
139
+ prompt: 'Trading commands', // Context hint
140
+ });
141
+
142
+ console.log(`Text: ${result.text}`);
143
+ console.log(`Language: ${result.language}`);
144
+ ```
145
+
146
+ ### Voice Activity Detection
147
+
148
+ ```typescript
149
+ // Check if user is speaking
150
+ const vad = voice.getVAD();
151
+
152
+ vad.on('speechStart', () => {
153
+ console.log('User started speaking');
154
+ });
155
+
156
+ vad.on('speechEnd', (audio) => {
157
+ console.log('User stopped speaking');
158
+ // audio contains the recorded speech
159
+ });
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Wake Word Configuration
165
+
166
+ | Setting | Values | Description |
167
+ |---------|--------|-------------|
168
+ | `wakeWord` | Any phrase | Trigger phrase |
169
+ | `sensitivity` | 0.0 - 1.0 | Detection threshold |
170
+
171
+ **Built-in wake words:**
172
+ - "hey clodds"
173
+ - "okay clodds"
174
+ - "clodds"
175
+
176
+ ---
177
+
178
+ ## STT Providers
179
+
180
+ | Provider | Quality | Speed | Offline |
181
+ |----------|---------|-------|---------|
182
+ | **Whisper** | Excellent | Medium | Yes |
183
+ | **Vosk** | Good | Fast | Yes |
184
+ | **Google** | Excellent | Fast | No |
185
+
186
+ ---
187
+
188
+ ## TTS Providers
189
+
190
+ | Provider | Quality | Voices | API Key |
191
+ |----------|---------|--------|---------|
192
+ | **ElevenLabs** | Premium | 30+ | Required |
193
+ | **say** (macOS) | Good | System | None |
194
+ | **espeak** | Basic | Many | None |
195
+
196
+ ---
197
+
198
+ ## Voice Commands Examples
199
+
200
+ Once voice is active, speak naturally:
201
+
202
+ ```
203
+ "Hey Clodds, what's my portfolio value?"
204
+ "Hey Clodds, buy 100 dollars of Trump YES"
205
+ "Hey Clodds, what are the top arbitrage opportunities?"
206
+ "Hey Clodds, set a price alert for Bitcoin at 100k"
207
+ ```
208
+
209
+ ---
210
+
211
+ ## Best Practices
212
+
213
+ 1. **Quiet environment** — Background noise affects accuracy
214
+ 2. **Clear speech** — Speak clearly for best recognition
215
+ 3. **Short commands** — Keep voice commands concise
216
+ 4. **Confirmation** — Enable confirmations for trades
217
+ 5. **Fallback** — Text input always available
@@ -166,8 +166,8 @@ async function execute(args) {
166
166
  return helpText();
167
167
  }
168
168
  }
169
- catch {
170
- return helpText();
169
+ catch (error) {
170
+ return `Error: ${error instanceof Error ? error.message : String(error)}`;
171
171
  }
172
172
  }
173
173
  function helpText() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/voice/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/voice/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: weather
3
+ description: "Weather betting - NOAA data for Polymarket weather markets"
4
+ command: weather
5
+ emoji: "🌤️"
6
+ gates:
7
+ envs:
8
+ - POLY_API_KEY
9
+ ---
10
+
11
+ # Weather Betting
12
+
13
+ Use NOAA weather forecasts to find edge on Polymarket weather markets.
14
+
15
+ ## Commands
16
+
17
+ ```
18
+ /weather scan Scan all weather markets for edge
19
+ /weather forecast <city> Get NOAA forecast for a city
20
+ /weather markets List active weather markets
21
+ /weather edge <market-id> Calculate edge for specific market
22
+ /weather bet <market-id> <amount> Execute bet
23
+ /weather auto [--threshold 10] Auto-bet on high-edge markets
24
+ /weather history View bet history
25
+ ```
26
+
27
+ ## Examples
28
+
29
+ ```
30
+ /weather forecast "New York"
31
+ /weather scan
32
+ /weather edge abc123
33
+ /weather bet abc123 10
34
+ /weather auto --threshold 15
35
+ ```
36
+
37
+ ## How It Works
38
+
39
+ 1. **Fetch NOAA Forecast**: Get official NWS weather data (free, no API key)
40
+ 2. **Match to Markets**: Find Polymarket weather markets for the same location/date
41
+ 3. **Calculate Edge**: Compare NOAA probability to market YES price
42
+ 4. **Bet if Edge**: If NOAA probability differs significantly from market, bet
43
+
44
+ ## Edge Calculation
45
+
46
+ ```
47
+ Edge = NOAA Probability - Market Price
48
+
49
+ Example:
50
+ NOAA says 80% chance of rain in NYC tomorrow
51
+ Polymarket "Will it rain in NYC?" YES price: 0.65 (65%)
52
+ Edge = 80% - 65% = +15% -> Bet YES
53
+ ```
54
+
55
+ ## Supported Market Types
56
+
57
+ - **Temperature**: "Will NYC exceed 90°F on Saturday?"
58
+ - **Precipitation**: "Will it rain in LA tomorrow?"
59
+ - **Snow**: "Will Chicago get 6+ inches of snow?"
60
+ - **Record**: "Will Phoenix hit a record high this week?"
61
+
62
+ ## Confidence Levels
63
+
64
+ - **High**: Edge >= 15%, reliable forecast data
65
+ - **Medium**: Edge 10-15%, some uncertainty
66
+ - **Low**: Edge 5-10%, more speculative
67
+
68
+ ## Position Sizing
69
+
70
+ Uses quarter-Kelly criterion for conservative sizing:
71
+
72
+ ```
73
+ Bet Size = Bankroll * (Edge / Odds) * 0.25
74
+ ```
75
+
76
+ Capped at 10% of bankroll per bet.
77
+
78
+ ## Supported Cities
79
+
80
+ Major US cities including: New York, Los Angeles, Chicago, Houston, Phoenix, Philadelphia, San Antonio, San Diego, Dallas, San Jose, Austin, Jacksonville, San Francisco, Seattle, Denver, Washington DC, Boston, Nashville, Detroit, and more.
@@ -272,6 +272,9 @@ Minimum recommended: 5%`;
272
272
  // Calculate shares from dollar amount
273
273
  // shares = amount / price
274
274
  const price = side === 'YES' ? edge.marketPrice : (1 - edge.marketPrice);
275
+ if (price <= 0) {
276
+ return `Cannot calculate shares: market price is ${(edge.marketPrice * 100).toFixed(1)}%.`;
277
+ }
275
278
  const shares = Math.floor(amount / price);
276
279
  if (shares < 1) {
277
280
  return `Amount too small. Minimum bet is $${price.toFixed(2)} for 1 share.`;