@oracle-agent/oracle 0.11.0 → 0.13.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 (487) hide show
  1. package/LICENSE +115 -201
  2. package/README.md +13 -516
  3. package/bin/oracle.mjs +19 -27
  4. package/package.json +15 -98
  5. package/CONTRIBUTING.md +0 -98
  6. package/SECURITY.md +0 -89
  7. package/SETUP.md +0 -381
  8. package/artifacts/inscription/oracle-was-here-preview.png +0 -0
  9. package/artifacts/inscription/oracle-was-here.svg +0 -1
  10. package/artifacts/specialist-packs/oracle-full-crypto.json +0 -295
  11. package/bin/desk-server.mjs +0 -440
  12. package/bin/oracle-data-mcp.mjs +0 -1019
  13. package/bin/oracle-init.mjs +0 -496
  14. package/bin/oracle-public-server.mjs +0 -36
  15. package/bin/oracle-route.mjs +0 -254
  16. package/bin/oracle-scan.mjs +0 -192
  17. package/bin/oracle-upgrade.mjs +0 -42
  18. package/docs/adding-a-chain.md +0 -229
  19. package/docs/architecture.md +0 -138
  20. package/docs/cli.md +0 -47
  21. package/docs/connectors.md +0 -13
  22. package/docs/oracle-pack-standard.md +0 -29
  23. package/docs/profiles.md +0 -151
  24. package/docs/public-surface.md +0 -133
  25. package/examples/add-a-chain.mjs +0 -65
  26. package/examples/oracle-pack-template.mjs +0 -38
  27. package/examples/research-a-token.mjs +0 -70
  28. package/plugins/oracle-owner-gate/__init__.py +0 -227
  29. package/plugins/oracle-owner-gate/plugin.yaml +0 -9
  30. package/profiles/_template/SOUL.md +0 -54
  31. package/profiles/_template/profile.json +0 -22
  32. package/profiles/bitcoin-agent/SOUL.md +0 -31
  33. package/profiles/bitcoin-agent/profile.json +0 -32
  34. package/profiles/hyperliquid-agent/SOUL.md +0 -34
  35. package/profiles/hyperliquid-agent/profile.json +0 -37
  36. package/profiles/oracle/SOUL.md +0 -107
  37. package/profiles/oracle/profile.json +0 -39
  38. package/profiles/polymarket-agent/SOUL.md +0 -35
  39. package/profiles/polymarket-agent/profile.json +0 -34
  40. package/profiles/profile.schema.json +0 -90
  41. package/profiles/protocol-builder/SOUL.md +0 -57
  42. package/profiles/protocol-builder/profile.json +0 -39
  43. package/profiles/robinhood-agent/SOUL.md +0 -53
  44. package/profiles/robinhood-agent/profile.json +0 -40
  45. package/profiles/solana-agent/SOUL.md +0 -37
  46. package/profiles/solana-agent/profile.json +0 -37
  47. package/profiles/stable-agent/SOUL.md +0 -43
  48. package/profiles/stable-agent/profile.json +0 -37
  49. package/protocols/templates/safe-erc20/SECURITY.md +0 -16
  50. package/protocols/templates/safe-erc20/foundry.toml +0 -12
  51. package/protocols/templates/safe-erc20/remappings.txt +0 -2
  52. package/protocols/templates/safe-erc20/src/SafeERC20.sol +0 -53
  53. package/protocols/templates/safe-erc20/test/SafeERC20.t.sol +0 -72
  54. package/public/agent-connect/app.js +0 -84
  55. package/public/agent-connect/index.html +0 -83
  56. package/public/agent-connect/styles.css +0 -70
  57. package/public/index.html +0 -12
  58. package/public/oracle-console/app.js +0 -272
  59. package/public/oracle-console/bitcoin-wallets.js +0 -206
  60. package/public/oracle-console/index.html +0 -91
  61. package/public/oracle-console/styles.css +0 -239
  62. package/public/oracle-splash/assets/cli-chain-hyperliquid.jpg +0 -0
  63. package/public/oracle-splash/assets/hero/orb.avif +0 -0
  64. package/public/oracle-splash/assets/hero/orb.webm +0 -0
  65. package/public/oracle-splash/assets/llms/claude.svg +0 -1
  66. package/public/oracle-splash/assets/llms/codex-icon.svg +0 -1
  67. package/public/oracle-splash/assets/llms/codex.svg +0 -1
  68. package/public/oracle-splash/assets/llms/cursor-icon.svg +0 -12
  69. package/public/oracle-splash/assets/llms/cursor.svg +0 -17
  70. package/public/oracle-splash/assets/llms/deepseek.svg +0 -1
  71. package/public/oracle-splash/assets/llms/gemini-icon.svg +0 -1
  72. package/public/oracle-splash/assets/llms/gemini.svg +0 -1
  73. package/public/oracle-splash/assets/llms/grok.svg +0 -8
  74. package/public/oracle-splash/assets/llms/hermes.png +0 -0
  75. package/public/oracle-splash/assets/llms/kimi-icon.svg +0 -1
  76. package/public/oracle-splash/assets/llms/kimi.svg +0 -1
  77. package/public/oracle-splash/assets/llms/manus.svg +0 -18
  78. package/public/oracle-splash/assets/llms/openclaw.svg +0 -22
  79. package/public/oracle-splash/assets/llms/perplexity.svg +0 -1
  80. package/public/oracle-splash/assets/llms/qwen.svg +0 -1
  81. package/public/oracle-splash/assets/llms/windsurf.svg +0 -1
  82. package/public/oracle-splash/assets/protocols/abcdex.png +0 -0
  83. package/public/oracle-splash/assets/protocols/across.png +0 -0
  84. package/public/oracle-splash/assets/protocols/aerodrome.png +0 -0
  85. package/public/oracle-splash/assets/protocols/balancer.png +0 -0
  86. package/public/oracle-splash/assets/protocols/cowswap.png +0 -0
  87. package/public/oracle-splash/assets/protocols/curve.png +0 -0
  88. package/public/oracle-splash/assets/protocols/dreamcash.png +0 -0
  89. package/public/oracle-splash/assets/protocols/felix.png +0 -0
  90. package/public/oracle-splash/assets/protocols/gmx.png +0 -0
  91. package/public/oracle-splash/assets/protocols/hyena.png +0 -0
  92. package/public/oracle-splash/assets/protocols/hyperbeat.png +0 -0
  93. package/public/oracle-splash/assets/protocols/hyperliquid.png +0 -0
  94. package/public/oracle-splash/assets/protocols/hyperswap.png +0 -0
  95. package/public/oracle-splash/assets/protocols/jupiter.png +0 -0
  96. package/public/oracle-splash/assets/protocols/kinetiq.png +0 -0
  97. package/public/oracle-splash/assets/protocols/lfj.png +0 -0
  98. package/public/oracle-splash/assets/protocols/lifi.png +0 -0
  99. package/public/oracle-splash/assets/protocols/magic-eden.png +0 -0
  100. package/public/oracle-splash/assets/protocols/morpho.png +0 -0
  101. package/public/oracle-splash/assets/protocols/odos.png +0 -0
  102. package/public/oracle-splash/assets/protocols/oneinch.png +0 -0
  103. package/public/oracle-splash/assets/protocols/opensea.png +0 -0
  104. package/public/oracle-splash/assets/protocols/pancakeswap.png +0 -0
  105. package/public/oracle-splash/assets/protocols/paragon.png +0 -0
  106. package/public/oracle-splash/assets/protocols/paraswap.png +0 -0
  107. package/public/oracle-splash/assets/protocols/pendle.png +0 -0
  108. package/public/oracle-splash/assets/protocols/polymarket.png +0 -0
  109. package/public/oracle-splash/assets/protocols/quickswap.png +0 -0
  110. package/public/oracle-splash/assets/protocols/relay.png +0 -0
  111. package/public/oracle-splash/assets/protocols/stargate.png +0 -0
  112. package/public/oracle-splash/assets/protocols/tradexyz.png +0 -0
  113. package/public/oracle-splash/assets/protocols/uniswap.png +0 -0
  114. package/public/oracle-splash/assets/protocols/velodrome.png +0 -0
  115. package/public/oracle-splash/assets/protocols/ventuals.png +0 -0
  116. package/public/oracle-splash/assets/wordmarks/across-icon.webp +0 -0
  117. package/public/oracle-splash/assets/wordmarks/across.svg +0 -4
  118. package/public/oracle-splash/assets/wordmarks/aerodrome.svg +0 -23
  119. package/public/oracle-splash/assets/wordmarks/balancer.svg +0 -3
  120. package/public/oracle-splash/assets/wordmarks/cowswap.svg +0 -1
  121. package/public/oracle-splash/assets/wordmarks/curve.png +0 -0
  122. package/public/oracle-splash/assets/wordmarks/gmx.svg +0 -13
  123. package/public/oracle-splash/assets/wordmarks/hop-icon.webp +0 -0
  124. package/public/oracle-splash/assets/wordmarks/hyena.svg +0 -7
  125. package/public/oracle-splash/assets/wordmarks/hyperliquid.svg +0 -21
  126. package/public/oracle-splash/assets/wordmarks/hyperswap.svg +0 -13
  127. package/public/oracle-splash/assets/wordmarks/jupiter.svg +0 -35
  128. package/public/oracle-splash/assets/wordmarks/kinetiq.svg +0 -1
  129. package/public/oracle-splash/assets/wordmarks/lfj.webp +0 -0
  130. package/public/oracle-splash/assets/wordmarks/lifi.png +0 -0
  131. package/public/oracle-splash/assets/wordmarks/magic-eden.svg +0 -1
  132. package/public/oracle-splash/assets/wordmarks/markets.svg +0 -1
  133. package/public/oracle-splash/assets/wordmarks/morpho.svg +0 -1
  134. package/public/oracle-splash/assets/wordmarks/odos.svg +0 -3
  135. package/public/oracle-splash/assets/wordmarks/oneinch-icon.webp +0 -0
  136. package/public/oracle-splash/assets/wordmarks/oneinch.svg +0 -6
  137. package/public/oracle-splash/assets/wordmarks/opensea-icon.svg +0 -17
  138. package/public/oracle-splash/assets/wordmarks/opensea.svg +0 -1
  139. package/public/oracle-splash/assets/wordmarks/outcome.svg +0 -16
  140. package/public/oracle-splash/assets/wordmarks/pancakeswap.svg +0 -18
  141. package/public/oracle-splash/assets/wordmarks/paragon.svg +0 -9
  142. package/public/oracle-splash/assets/wordmarks/paraswap.svg +0 -16
  143. package/public/oracle-splash/assets/wordmarks/pendle.png +0 -0
  144. package/public/oracle-splash/assets/wordmarks/polymarket.png +0 -0
  145. package/public/oracle-splash/assets/wordmarks/quickswap.png +0 -0
  146. package/public/oracle-splash/assets/wordmarks/relay.svg +0 -8
  147. package/public/oracle-splash/assets/wordmarks/satflow-icon.png +0 -0
  148. package/public/oracle-splash/assets/wordmarks/stargate-icon.webp +0 -0
  149. package/public/oracle-splash/assets/wordmarks/stargate.svg +0 -15
  150. package/public/oracle-splash/assets/wordmarks/uniswap.svg +0 -18
  151. package/public/oracle-splash/assets/wordmarks/velodrome.svg +0 -84
  152. package/public/oracle-splash/assets/wordmarks/xyz.svg +0 -12
  153. package/public/oracle-splash/assets/wordmarks/zerox-icon.webp +0 -0
  154. package/public/oracle-splash/brand/aave.webp +0 -0
  155. package/public/oracle-splash/brand/aavev2.webp +0 -0
  156. package/public/oracle-splash/brand/aborean.webp +0 -0
  157. package/public/oracle-splash/brand/across.webp +0 -0
  158. package/public/oracle-splash/brand/aerodrome.webp +0 -0
  159. package/public/oracle-splash/brand/afi.webp +0 -0
  160. package/public/oracle-splash/brand/arcus.webp +0 -0
  161. package/public/oracle-splash/brand/aster.webp +0 -0
  162. package/public/oracle-splash/brand/avant.webp +0 -0
  163. package/public/oracle-splash/brand/balancer.webp +0 -0
  164. package/public/oracle-splash/brand/beefy.webp +0 -0
  165. package/public/oracle-splash/brand/benqi.webp +0 -0
  166. package/public/oracle-splash/brand/bestinslot.ico +0 -0
  167. package/public/oracle-splash/brand/bitfi.webp +0 -0
  168. package/public/oracle-splash/brand/bonkswap.webp +0 -0
  169. package/public/oracle-splash/brand/bouncebit.webp +0 -0
  170. package/public/oracle-splash/brand/camelot.webp +0 -0
  171. package/public/oracle-splash/brand/compound.webp +0 -0
  172. package/public/oracle-splash/brand/concrete.webp +0 -0
  173. package/public/oracle-splash/brand/cow.webp +0 -0
  174. package/public/oracle-splash/brand/curve.webp +0 -0
  175. package/public/oracle-splash/brand/derive.webp +0 -0
  176. package/public/oracle-splash/brand/dolomite.webp +0 -0
  177. package/public/oracle-splash/brand/eigenlayer.webp +0 -0
  178. package/public/oracle-splash/brand/ekubo.webp +0 -0
  179. package/public/oracle-splash/brand/ethena.webp +0 -0
  180. package/public/oracle-splash/brand/etherfi.webp +0 -0
  181. package/public/oracle-splash/brand/etherfiborrow.webp +0 -0
  182. package/public/oracle-splash/brand/felix.webp +0 -0
  183. package/public/oracle-splash/brand/fluid.webp +0 -0
  184. package/public/oracle-splash/brand/fluxbeam.webp +0 -0
  185. package/public/oracle-splash/brand/folks.webp +0 -0
  186. package/public/oracle-splash/brand/fortyacres.webp +0 -0
  187. package/public/oracle-splash/brand/gainsnetwork.webp +0 -0
  188. package/public/oracle-splash/brand/gassss.webp +0 -0
  189. package/public/oracle-splash/brand/gmx.webp +0 -0
  190. package/public/oracle-splash/brand/harmonix.webp +0 -0
  191. package/public/oracle-splash/brand/hlorderbook.webp +0 -0
  192. package/public/oracle-splash/brand/hlp.webp +0 -0
  193. package/public/oracle-splash/brand/hop.webp +0 -0
  194. package/public/oracle-splash/brand/hyperbeat.webp +0 -0
  195. package/public/oracle-splash/brand/hyperlend.webp +0 -0
  196. package/public/oracle-splash/brand/hyperliquid.webp +0 -0
  197. package/public/oracle-splash/brand/hyperliquidhpl.webp +0 -0
  198. package/public/oracle-splash/brand/hyperliquidspot.webp +0 -0
  199. package/public/oracle-splash/brand/hyperswap.webp +0 -0
  200. package/public/oracle-splash/brand/hypha.webp +0 -0
  201. package/public/oracle-splash/brand/joedex.webp +0 -0
  202. package/public/oracle-splash/brand/jupiter.webp +0 -0
  203. package/public/oracle-splash/brand/kelp.webp +0 -0
  204. package/public/oracle-splash/brand/kinetiq.webp +0 -0
  205. package/public/oracle-splash/brand/kmhype.webp +0 -0
  206. package/public/oracle-splash/brand/kona.webp +0 -0
  207. package/public/oracle-splash/brand/konalend.webp +0 -0
  208. package/public/oracle-splash/brand/lfj.webp +0 -0
  209. package/public/oracle-splash/brand/lido.webp +0 -0
  210. package/public/oracle-splash/brand/lifi.webp +0 -0
  211. package/public/oracle-splash/brand/lighter.webp +0 -0
  212. package/public/oracle-splash/brand/lista.webp +0 -0
  213. package/public/oracle-splash/brand/loopedhype.webp +0 -0
  214. package/public/oracle-splash/brand/lorenzo.webp +0 -0
  215. package/public/oracle-splash/brand/magic-eden.webp +0 -0
  216. package/public/oracle-splash/brand/magiceden.webp +0 -0
  217. package/public/oracle-splash/brand/mempool.png +0 -0
  218. package/public/oracle-splash/brand/meteora.webp +0 -0
  219. package/public/oracle-splash/brand/morpho.webp +0 -0
  220. package/public/oracle-splash/brand/myriad.webp +0 -0
  221. package/public/oracle-splash/brand/noxa.webp +0 -0
  222. package/public/oracle-splash/brand/odos.webp +0 -0
  223. package/public/oracle-splash/brand/oneinch.webp +0 -0
  224. package/public/oracle-splash/brand/openbook.webp +0 -0
  225. package/public/oracle-splash/brand/opensea.webp +0 -0
  226. package/public/oracle-splash/brand/orca.webp +0 -0
  227. package/public/oracle-splash/brand/ordinals.png +0 -0
  228. package/public/oracle-splash/brand/ostium.webp +0 -0
  229. package/public/oracle-splash/brand/pancakeswap.webp +0 -0
  230. package/public/oracle-splash/brand/pendle.webp +0 -0
  231. package/public/oracle-splash/brand/perena.webp +0 -0
  232. package/public/oracle-splash/brand/pharaoh.webp +0 -0
  233. package/public/oracle-splash/brand/phoenix.webp +0 -0
  234. package/public/oracle-splash/brand/polymarket.webp +0 -0
  235. package/public/oracle-splash/brand/polynomial.webp +0 -0
  236. package/public/oracle-splash/brand/projectx.webp +0 -0
  237. package/public/oracle-splash/brand/pumpfun.webp +0 -0
  238. package/public/oracle-splash/brand/quickswap.webp +0 -0
  239. package/public/oracle-splash/brand/rain.webp +0 -0
  240. package/public/oracle-splash/brand/raydium.webp +0 -0
  241. package/public/oracle-splash/brand/relay.webp +0 -0
  242. package/public/oracle-splash/brand/rocketpool.webp +0 -0
  243. package/public/oracle-splash/brand/saber.webp +0 -0
  244. package/public/oracle-splash/brand/sakuraswap.webp +0 -0
  245. package/public/oracle-splash/brand/sanctum.webp +0 -0
  246. package/public/oracle-splash/brand/satflow.png +0 -0
  247. package/public/oracle-splash/brand/sierra.webp +0 -0
  248. package/public/oracle-splash/brand/sky.webp +0 -0
  249. package/public/oracle-splash/brand/solv.webp +0 -0
  250. package/public/oracle-splash/brand/spark.webp +0 -0
  251. package/public/oracle-splash/brand/sparksavings.webp +0 -0
  252. package/public/oracle-splash/brand/sphere.webp +0 -0
  253. package/public/oracle-splash/brand/ssv.webp +0 -0
  254. package/public/oracle-splash/brand/stabble.webp +0 -0
  255. package/public/oracle-splash/brand/stableswap.webp +0 -0
  256. package/public/oracle-splash/brand/stakewise.webp +0 -0
  257. package/public/oracle-splash/brand/stargate.webp +0 -0
  258. package/public/oracle-splash/brand/sthype.webp +0 -0
  259. package/public/oracle-splash/brand/sushiswap.webp +0 -0
  260. package/public/oracle-splash/brand/unisat.png +0 -0
  261. package/public/oracle-splash/brand/uniswap.webp +0 -0
  262. package/public/oracle-splash/brand/uniswapv2.webp +0 -0
  263. package/public/oracle-splash/brand/uniswapv4.webp +0 -0
  264. package/public/oracle-splash/brand/unit.webp +0 -0
  265. package/public/oracle-splash/brand/velodrome.webp +0 -0
  266. package/public/oracle-splash/brand/velora.webp +0 -0
  267. package/public/oracle-splash/brand/venus.webp +0 -0
  268. package/public/oracle-splash/brand/wbeth.webp +0 -0
  269. package/public/oracle-splash/brand/xsy.webp +0 -0
  270. package/public/oracle-splash/brand/yieldyak.webp +0 -0
  271. package/public/oracle-splash/brand/zerobase.webp +0 -0
  272. package/public/oracle-splash/brand/zerox.webp +0 -0
  273. package/public/oracle-splash/favicon.ico +0 -0
  274. package/public/oracle-splash/favicon.svg +0 -6
  275. package/public/oracle-splash/index.html +0 -1558
  276. package/public/oracle-splash/mesh-graph.png +0 -0
  277. package/public/oracle-splash/mesh-graph.svg +0 -216
  278. package/scripts/adversarial-bench.mjs +0 -114
  279. package/scripts/build-inscription.py +0 -230
  280. package/scripts/check-doc-drift.mjs +0 -123
  281. package/scripts/check-test-count.mjs +0 -105
  282. package/scripts/e2e-hl-markets.mjs +0 -21
  283. package/scripts/e2e-hl-perps.mjs +0 -48
  284. package/scripts/e2e-hypercore-staking.mjs +0 -128
  285. package/scripts/e2e-solana-bitcoin.mjs +0 -183
  286. package/scripts/protocol-template-gate.mjs +0 -15
  287. package/scripts/public-api-scan.mjs +0 -23
  288. package/scripts/secret-scan.mjs +0 -181
  289. package/scripts/verify-v3-venues.mjs +0 -192
  290. package/skills/balance/SKILL.md +0 -176
  291. package/skills/oracle-action-semantics/SKILL.md +0 -40
  292. package/skills/oracle-best-execution/SKILL.md +0 -127
  293. package/skills/oracle-bitcoin/SKILL.md +0 -53
  294. package/skills/oracle-chain-graphs-telegram-cards/SKILL.md +0 -59
  295. package/skills/oracle-chat/SKILL.md +0 -61
  296. package/skills/oracle-chat/chain.SKILL.md +0 -31
  297. package/skills/oracle-chat/setup.SKILL.md +0 -37
  298. package/skills/oracle-circuit-breaker/SKILL.md +0 -51
  299. package/skills/oracle-contract-research/SKILL.md +0 -55
  300. package/skills/oracle-desk/SKILL.md +0 -58
  301. package/skills/oracle-dex-launch/SKILL.md +0 -38
  302. package/skills/oracle-grants/SKILL.md +0 -69
  303. package/skills/oracle-hypercore-staking/SKILL.md +0 -57
  304. package/skills/oracle-hyperliquid/SKILL.md +0 -56
  305. package/skills/oracle-meme-token-sniper/SKILL.md +0 -73
  306. package/skills/oracle-multichain-nft-launch/SKILL.md +0 -338
  307. package/skills/oracle-multichain-token-launch/SKILL.md +0 -300
  308. package/skills/oracle-nft-gacha-launch/SKILL.md +0 -48
  309. package/skills/oracle-nft-mint-gas-war/SKILL.md +0 -63
  310. package/skills/oracle-polymarket/SKILL.md +0 -60
  311. package/skills/oracle-protocol-builder/SKILL.md +0 -59
  312. package/skills/oracle-protocol-security/SKILL.md +0 -60
  313. package/skills/oracle-public-product/SKILL.md +0 -44
  314. package/skills/oracle-receipts/SKILL.md +0 -52
  315. package/skills/oracle-rfq-tokenized-assets/SKILL.md +0 -69
  316. package/skills/oracle-smart-wallet-scanner/SKILL.md +0 -49
  317. package/skills/oracle-solana/SKILL.md +0 -65
  318. package/skills/oracle-solana-nft/SKILL.md +0 -54
  319. package/skills/oracle-token-research/SKILL.md +0 -67
  320. package/skins/oracle.yaml +0 -56
  321. package/src/action-receipts.mjs +0 -265
  322. package/src/action-semantics.mjs +0 -62
  323. package/src/address-book.mjs +0 -208
  324. package/src/agent-auth.mjs +0 -206
  325. package/src/approval-guard.mjs +0 -282
  326. package/src/attestation-secret.mjs +0 -88
  327. package/src/audit-log.mjs +0 -196
  328. package/src/auth/oauth.mjs +0 -672
  329. package/src/auto-slippage.mjs +0 -378
  330. package/src/capability-posture.mjs +0 -125
  331. package/src/chains.mjs +0 -62
  332. package/src/cli/chain-catalog.mjs +0 -215
  333. package/src/cli/chain-state.mjs +0 -74
  334. package/src/cli/commands/auth.mjs +0 -193
  335. package/src/cli/commands/bootstrap.mjs +0 -87
  336. package/src/cli/commands/chain.mjs +0 -143
  337. package/src/cli/commands/chat.mjs +0 -434
  338. package/src/cli/commands/credential.mjs +0 -9
  339. package/src/cli/commands/data-mcp.mjs +0 -18
  340. package/src/cli/commands/data.mjs +0 -75
  341. package/src/cli/commands/doctor.mjs +0 -136
  342. package/src/cli/commands/help.mjs +0 -7
  343. package/src/cli/commands/init.mjs +0 -27
  344. package/src/cli/commands/mcp.mjs +0 -142
  345. package/src/cli/commands/model.mjs +0 -99
  346. package/src/cli/commands/prepare.mjs +0 -12
  347. package/src/cli/commands/public.mjs +0 -20
  348. package/src/cli/commands/route.mjs +0 -12
  349. package/src/cli/commands/runner.mjs +0 -9
  350. package/src/cli/commands/scan.mjs +0 -12
  351. package/src/cli/commands/setup.mjs +0 -275
  352. package/src/cli/commands/sign.mjs +0 -21
  353. package/src/cli/commands/signer.mjs +0 -9
  354. package/src/cli/commands/upgrade.mjs +0 -12
  355. package/src/cli/commands/vault.mjs +0 -9
  356. package/src/cli/commands/version.mjs +0 -22
  357. package/src/cli/first-run.mjs +0 -23
  358. package/src/cli/kernel.mjs +0 -239
  359. package/src/cli/mcp-targets/chatgpt.mjs +0 -51
  360. package/src/cli/mcp-targets/claude-code.mjs +0 -39
  361. package/src/cli/mcp-targets/claude-desktop.mjs +0 -24
  362. package/src/cli/mcp-targets/codex.mjs +0 -41
  363. package/src/cli/mcp-targets/shared.mjs +0 -61
  364. package/src/cli/messaging-platforms.mjs +0 -209
  365. package/src/cli/model-config.mjs +0 -70
  366. package/src/cli/operator-dispatch.mjs +0 -258
  367. package/src/cli/oracle-harness.py +0 -415
  368. package/src/cli/paths.mjs +0 -83
  369. package/src/cli/runtime.mjs +0 -351
  370. package/src/cli/setup-state.mjs +0 -168
  371. package/src/cli/spawn-child.mjs +0 -43
  372. package/src/data/catalog.mjs +0 -585
  373. package/src/data/desk-data.mjs +0 -695
  374. package/src/data/http.mjs +0 -253
  375. package/src/data/provider-endpoint.mjs +0 -94
  376. package/src/data/providers/aerodrome.mjs +0 -245
  377. package/src/data/providers/balancer.mjs +0 -209
  378. package/src/data/providers/bitcoin-esplora.mjs +0 -216
  379. package/src/data/providers/bitcoin-meta.mjs +0 -378
  380. package/src/data/providers/blockscout.mjs +0 -14
  381. package/src/data/providers/bridges.mjs +0 -242
  382. package/src/data/providers/cowswap.mjs +0 -415
  383. package/src/data/providers/curve.mjs +0 -201
  384. package/src/data/providers/defillama.mjs +0 -88
  385. package/src/data/providers/dexscreener.mjs +0 -43
  386. package/src/data/providers/evm-rpc.mjs +0 -225
  387. package/src/data/providers/geckoterminal.mjs +0 -34
  388. package/src/data/providers/gmx.mjs +0 -496
  389. package/src/data/providers/hl-assets.mjs +0 -165
  390. package/src/data/providers/hl-info.mjs +0 -108
  391. package/src/data/providers/hl-markets.mjs +0 -210
  392. package/src/data/providers/hl-outcome.mjs +0 -61
  393. package/src/data/providers/hl-perps.mjs +0 -387
  394. package/src/data/providers/hl-staking.mjs +0 -353
  395. package/src/data/providers/hl-ws.mjs +0 -119
  396. package/src/data/providers/hyperevm-dex.mjs +0 -49
  397. package/src/data/providers/jupiter-venues.mjs +0 -119
  398. package/src/data/providers/jupiter.mjs +0 -315
  399. package/src/data/providers/lifi.mjs +0 -151
  400. package/src/data/providers/magiceden-sol.mjs +0 -406
  401. package/src/data/providers/morpho.mjs +0 -177
  402. package/src/data/providers/nft-gallery.mjs +0 -163
  403. package/src/data/providers/nft-portfolio.mjs +0 -494
  404. package/src/data/providers/odos.mjs +0 -156
  405. package/src/data/providers/oneinch.mjs +0 -174
  406. package/src/data/providers/opensea-multichain.mjs +0 -136
  407. package/src/data/providers/opensea-nft.mjs +0 -371
  408. package/src/data/providers/paraswap.mjs +0 -118
  409. package/src/data/providers/pendle.mjs +0 -188
  410. package/src/data/providers/poly-clob.mjs +0 -283
  411. package/src/data/providers/poly-public.mjs +0 -96
  412. package/src/data/providers/poly-ws.mjs +0 -103
  413. package/src/data/providers/portfolio-history.mjs +0 -394
  414. package/src/data/providers/portfolio.mjs +0 -594
  415. package/src/data/providers/rfq.mjs +0 -15
  416. package/src/data/providers/rh-agent.mjs +0 -59
  417. package/src/data/providers/satflow.mjs +0 -341
  418. package/src/data/providers/signed-material-guard.mjs +0 -108
  419. package/src/data/providers/solana-rpc.mjs +0 -197
  420. package/src/data/providers/uniswap-v3.mjs +0 -349
  421. package/src/data/providers/uniswap-v4.mjs +0 -414
  422. package/src/data/providers/zerox.mjs +0 -167
  423. package/src/data/public-api-scan.mjs +0 -61
  424. package/src/data/quote-placeholder.mjs +0 -31
  425. package/src/exact-integer.mjs +0 -72
  426. package/src/exec-policy.mjs +0 -455
  427. package/src/flags.mjs +0 -15
  428. package/src/fresh-window.mjs +0 -76
  429. package/src/gmx-attestation.mjs +0 -176
  430. package/src/index.mjs +0 -100
  431. package/src/nft-gas-war-guard.mjs +0 -139
  432. package/src/onboarding/agent-keys.mjs +0 -161
  433. package/src/onboarding/harness-configs.mjs +0 -102
  434. package/src/onboarding/index.mjs +0 -18
  435. package/src/onboarding/tiers.mjs +0 -139
  436. package/src/oracle-env.mjs +0 -47
  437. package/src/portfolio-risk.mjs +0 -170
  438. package/src/prepare-envelope.mjs +0 -204
  439. package/src/profile-upgrade.mjs +0 -277
  440. package/src/protocol-execution.mjs +0 -84
  441. package/src/protocol-templates/gate.mjs +0 -179
  442. package/src/protocol-templates/prepare-deploy.mjs +0 -81
  443. package/src/public-api/buzz-integration.mjs +0 -256
  444. package/src/public-api/connect-agent.mjs +0 -416
  445. package/src/public-api/grants.mjs +0 -142
  446. package/src/public-api/http.mjs +0 -389
  447. package/src/public-control/aa-adapter.mjs +0 -402
  448. package/src/public-control/build-registry.mjs +0 -227
  449. package/src/public-control/bundler-client.mjs +0 -357
  450. package/src/public-control/grant-indexer.mjs +0 -296
  451. package/src/public-control/policy-render.mjs +0 -69
  452. package/src/public-control/policy-schema.mjs +0 -318
  453. package/src/public-control/runtime-config.mjs +0 -275
  454. package/src/public-control/session-key-model.mjs +0 -374
  455. package/src/public-control/session-orchestrator.mjs +0 -412
  456. package/src/rfq/intent.mjs +0 -180
  457. package/src/rfq/sources.mjs +0 -181
  458. package/src/route-attestation.mjs +0 -132
  459. package/src/router/best-execution.mjs +0 -326
  460. package/src/router/index.mjs +0 -226
  461. package/src/router/prepare-bridge.mjs +0 -289
  462. package/src/router/prepare-route.mjs +0 -398
  463. package/src/router/proposal.mjs +0 -311
  464. package/src/router/risk-classifier.mjs +0 -119
  465. package/src/router/route-sources.mjs +0 -364
  466. package/src/scanner/chains.config.mjs +0 -430
  467. package/src/scanner/contract.mjs +0 -270
  468. package/src/scanner/evm-scanner.mjs +0 -394
  469. package/src/scanner/index.mjs +0 -9
  470. package/src/scanner/v2-venue.mjs +0 -335
  471. package/src/scanner/v3-venue.mjs +0 -290
  472. package/src/scopes.mjs +0 -44
  473. package/src/sell-simulation.mjs +0 -167
  474. package/src/signals/engine.mjs +0 -146
  475. package/src/signals/index.mjs +0 -1
  476. package/src/token-transfer-guard.mjs +0 -188
  477. package/src/tui/app.mjs +0 -438
  478. package/src/tui/backend.mjs +0 -145
  479. package/src/tui/format.mjs +0 -272
  480. package/src/tui/gateway-client.mjs +0 -177
  481. package/src/tui/input.mjs +0 -501
  482. package/src/tui/renderer.mjs +0 -443
  483. package/src/tui/standalone-client.mjs +0 -666
  484. package/src/tui/theme.mjs +0 -81
  485. package/src/vault-attestation.mjs +0 -146
  486. package/src/venues.mjs +0 -206
  487. package/src/watch-preferences.mjs +0 -85
@@ -1,57 +0,0 @@
1
- ---
2
- name: oracle-hypercore-staking
3
- description: Stake, delegate, undelegate, and unstake HYPE on Hyperliquid HyperCore. Prepare-only, user wallet signs.
4
- ---
5
-
6
- # HyperCore HYPE staking
7
-
8
- Use when someone asks Oracle to stake HYPE, delegate to a validator, undelegate,
9
- or unstake back to spot on Hyperliquid.
10
-
11
- ## The four moves, in order
12
-
13
- HyperCore keeps staking in two buckets. Know which one holds the HYPE before
14
- preparing anything.
15
-
16
- | Move | Action | From -> To | Timing |
17
- |---|---|---|---|
18
- | Stake | `cDeposit` | spot -> staking balance | instant |
19
- | Delegate | `tokenDelegate` isUndelegate=false | staking balance -> validator | 1 day validator lockup |
20
- | Undelegate | `tokenDelegate` isUndelegate=true | validator -> staking balance | instant after lockup |
21
- | Unstake | `cWithdraw` | staking balance -> spot | 7 day queue |
22
-
23
- Staking balance earns nothing until it is delegated. "Unstake" almost always
24
- means two steps: undelegate first, then withdraw.
25
-
26
- ## Flow
27
-
28
- 1. `desk.hl.staking.preflight(user)` - read delegated, undelegated, and pending
29
- withdrawal balances plus the queue and lockup constants.
30
- 2. `desk.hl.staking.validators()` - pick a validator. Reject jailed ones and
31
- surface commission before recommending.
32
- 3. Prepare exactly one move:
33
- - `desk.hl.staking.prepareStake({ amountHype, maxHype })`
34
- - `desk.hl.staking.prepareDelegate({ validator, amountHype, isUndelegate })`
35
- - `desk.hl.staking.prepareUnstake({ amountHype })`
36
- 4. Hand back the EIP-712 typed data. The user's wallet signs and submits.
37
-
38
- ## Rules
39
-
40
- - Amounts are decimal HYPE strings at 8 decimals. `hypeToWei("1.5")` is
41
- `150000000`. More than 8 decimals is rejected, not rounded.
42
- - `maxHype` is a hard cap checked before anything is built. No cap, no size
43
- discipline on an agent path.
44
- - Never claim a stake happened. These functions return `broadcastReady: false`
45
- and `requiresUserSignature: true`. There is no submit function in the module
46
- on purpose.
47
- - Warn about the 7 day unstaking queue every time you prepare a `cWithdraw`.
48
- The HYPE is illiquid for the whole queue.
49
- - Warn about the 1 day validator lockup before a delegate.
50
- - Check `undelegated` balance before preparing a withdraw. Withdrawing more than
51
- the undelegated bucket fails on chain, and the failure costs the user a round
52
- trip.
53
-
54
- ## Verification
55
-
56
- `npm run e2e:hypercore-staking` hits live validator/delegator reads and asserts
57
- every prepare path stays unsigned with caps enforced.
@@ -1,56 +0,0 @@
1
- ---
2
- name: oracle-hyperliquid
3
- description: Use for Hyperliquid perps and spot — funding, books, positions, liquidation distance via the public info API.
4
- ---
5
-
6
- # Hyperliquid
7
-
8
- Read through Oracle's data plane (`hl-info` provider, public `/info` endpoint). No
9
- key required for reads.
10
-
11
- ## Ops worth knowing
12
-
13
- | Need | Op |
14
- |---|---|
15
- | all mids | `allMids` |
16
- | order book | `l2Book` |
17
- | perp metadata + live ctx | `metaAndAssetCtxs` |
18
- | spot metadata | `spotMeta` |
19
- | account state | `clearinghouse` / `userState` |
20
- | fills | `userFills` |
21
- | open orders | `openOrders` / `frontendOpenOrders` |
22
- | candles | `candleSnapshot` |
23
-
24
- `metaAndAssetCtxs` is the efficient one: it returns funding, open interest, mark and
25
- oracle price for every asset in a single call. Prefer it over per-asset loops.
26
-
27
- ## The three numbers that matter
28
-
29
- **Liquidation distance.** In percent. Always state it for a leveraged position. A
30
- "20x position" is really "a 5% adverse move ends this."
31
-
32
- **Funding.** Annualize it. A position paying 40% annualized is losing steadily even
33
- when directionally right. Funding flips sign — check the current rate, not the
34
- average.
35
-
36
- **Depth at your size.** The mid is a fiction for anything but the smallest clip.
37
- Walk the `l2Book` to your notional and quote the real average fill.
38
-
39
- ## Mark vs oracle price
40
-
41
- Liquidations reference the **oracle** price; PnL references the **mark**. They
42
- diverge during volatility, which is exactly when it matters. Say which one you used.
43
-
44
- ## Spot and perps are different assets
45
-
46
- The same ticker exists in both with different liquidity and no automatic
47
- relationship. Never quote a perp book for a spot question.
48
-
49
- ## Hard rules
50
-
51
- 1. State liquidation distance for every leveraged position — not optional.
52
- 2. Annualize funding, always.
53
- 3. Quote fills from book depth, not the mid.
54
- 4. Never size to "max leverage" without naming the wipeout move.
55
- 5. You prepare; the user's wallet signs.
56
- 6. Receipts or it didn't happen.
@@ -1,73 +0,0 @@
1
- ---
2
- name: oracle-meme-token-sniper
3
- description: Scan and prepare guarded meme-token launch/sniping trades across configured chains; fail-closed, user-signed, sell-sim first.
4
- ---
5
-
6
- # Oracle meme-token sniper
7
-
8
- Use when a user asks Oracle to find, monitor, or prepare buys for meme tokens,
9
- new launches, liquidity adds, bonding curves, or "snipe" opportunities on any
10
- supported chain.
11
-
12
- ## Scope
13
-
14
- Oracle may scan every configured venue/chain for meme-token launch signals:
15
-
16
- - EVM factory/pair/pool creation logs across configured chains.
17
- - Liquidity additions, first swaps, tax/owner-risk changes, holder distribution.
18
- - Solana SPL/token-launch feeds and Jupiter-route availability when configured.
19
- - Chain-specific launchpads/bonding curves only after the venue is verified.
20
- - Smart-wallet early-entry overlap and repeat deployer history.
21
-
22
- Unsupported chain/venue means `UNAVAILABLE`, not fake coverage. A chain with no
23
- verified executable route can still be analyzed, but cannot be prepared for buy.
24
-
25
- ## Required gate before any prepared buy
26
-
27
- 1. Resolve exact chain, token mint/contract, pool, quote asset, router/venue.
28
- 2. Verify token identity from live chain data, not only a ticker/social link.
29
- 3. Check deployer/owner controls, mint/freeze/blacklist/tax/proxy risks where
30
- the chain exposes them.
31
- 4. Confirm liquidity exists and is not only a fake/self pool.
32
- 5. Run sellability / reverse-route simulation when the chain/venue supports it.
33
- 6. Quote fresh, net of gas, and bind slippage/deadline to the prepared artifact.
34
- 7. Enforce user caps: per-trade spend, chain, venue, token, max fee, and TTL.
35
- 8. Return unsigned/user-signable transaction only. No model-authored calldata
36
- bypass, no raw user calldata, no backend custody by default.
37
-
38
- ## Autonomous mode
39
-
40
- Autonomous meme sniping is allowed only as a capped local-user signer loop:
41
-
42
- - separate burner/session key, never main wallet
43
- - explicit user opt-in and scope
44
- - max spend per token and per day
45
- - denylist/allowlist support
46
- - retry ceiling and kill switch
47
- - first-run paper/shadow mode
48
- - receipt/balance reconciliation after every fill
49
-
50
- Default public posture is advisory/prepare-only. "Snipe" in UI copy means fast
51
- scan + prepared ticket; it does not mean blind broadcast.
52
-
53
- ## Output contract
54
-
55
- For every candidate, return:
56
-
57
- - `chain`, `token`, `pool`, `venue`
58
- - `signal`: launch/liquidity/smart-wallet/social/etc.
59
- - `risk`: PASS/WARN/BLOCK/UNKNOWN with evidence
60
- - `sellability`: PASS/FAIL/UNKNOWN/UNAVAILABLE
61
- - `route`: quote source and freshness
62
- - `prepared`: true only if a guarded unsigned artifact exists
63
- - `whyBlocked` when not prepared
64
-
65
- ## Pitfalls
66
-
67
- - Treating ticker match as identity.
68
- - Buying before sell-sim/reverse-route proof.
69
- - Using scanner membership as an execution allowlist.
70
- - Calling a launchpool real when reserves are virtual/stale.
71
- - Ignoring gas: on small meme trades, gas can dominate edge.
72
- - Letting "every chain" become "every venue is executable". Coverage must be
73
- capability-labeled per chain.
@@ -1,338 +0,0 @@
1
- ---
2
- name: oracle-multichain-nft-launch
3
- description: Use when planning, building, reviewing, or preparing an NFT collection launch across EVM, Solana, Bitcoin Ordinals, Cosmos, Move, HyperEVM, or another chain family. Fail closed on unsupported adapters; preserve metadata provenance; prepare only; the user signs every side effect.
4
- ---
5
-
6
- # Multichain NFT collection launch
7
-
8
- ## Contract
9
-
10
- Use this skill for collection contracts or programs, metadata and media manifests,
11
- allowlists, public mints, royalties, reveals, editions, inscriptions, and collection
12
- verification.
13
-
14
- "Every chain" means classify the chain family and use a verified native standard.
15
- There is no universal NFT transaction. An ERC-721, a Metaplex collection, a Bitcoin
16
- parent inscription, a CW721 contract, and a Move object are different products.
17
-
18
- Oracle researches, scaffolds, tests, simulates, and prepares unsigned actions. The
19
- user signs collection creation, mint, metadata, authority, treasury, marketplace,
20
- and reveal actions separately. Never broadcast from this skill.
21
-
22
- When loaded by the `oracle` router, use this skill to classify the request, then
23
- route chain research to the relevant specialist and build/prepare work to
24
- `protocol-builder`. The router remains read and simulate only.
25
-
26
- If the launch uses randomized packs or loot mechanics, load
27
- `oracle-nft-gacha-launch` as an additional safety layer.
28
-
29
- ## Support status language
30
-
31
- Use exactly one status before building:
32
-
33
- | Status | Meaning |
34
- |---|---|
35
- | `TEMPLATE_READY` | Oracle ships a gated collection template and prepare adapter for the exact standard. |
36
- | `ADAPTER_READY` | A chain-specific creation/mint encoder exists and passed simulation or testnet verification. |
37
- | `GUIDED_BUILD` | Oracle can scaffold and test the project, but no generic transaction adapter is shipped. |
38
- | `RESEARCH_ONLY` | Oracle can verify standards and produce a launch plan, not a deployable bundle. |
39
- | `UNSUPPORTED` | Required primitives or trustworthy tooling cannot be verified. Stop. |
40
-
41
- Do not call marketplace read or mint-bot support a collection-deployment adapter.
42
- Buying an NFT, minting from an existing contract, and creating a collection are
43
- three separate capabilities.
44
-
45
- ## Current family matrix
46
-
47
- | Family | Collection primitive | Default status | Required path |
48
- |---|---|---|---|
49
- | EVM | ERC-721, ERC-1155, ERC-2981 | `GUIDED_BUILD` until a gated Oracle collection template ships | Foundry tests, metadata/reveal tests, fork simulation, unsigned deploy |
50
- | Solana | Metaplex Core, Token Metadata collection, Candy Machine/drop programs | `GUIDED_BUILD` | Select one standard, validate authorities, simulate ordered unsigned transactions |
51
- | Bitcoin | Ordinals parent/child inscriptions and indexer collection manifests | `GUIDED_BUILD` for content and commit/reveal planning; adapter evidence required for `ADAPTER_READY` | Provenance manifest, parent link, UTXO/fee/reveal safety |
52
- | Cosmos | CW721 or chain-native NFT module | `RESEARCH_ONLY` by default | Verify chain-specific instantiate/execute messages and migration admin |
53
- | Sui | object-based collection and kiosk ecosystem | `RESEARCH_ONLY` by default | Move package, object capabilities, display metadata, testnet publish |
54
- | Aptos | Digital Asset standard or chain-native collection objects | `RESEARCH_ONLY` by default | Collection/mint refs, mutation permissions, testnet publish |
55
- | HyperEVM | ERC-721 or ERC-1155 | EVM status | Exact HyperEVM chain id and verified RPC/toolchain |
56
- | Hyperliquid L1 | no generic NFT contract path assumed | `UNSUPPORTED` unless an official native primitive is verified | Route to HyperEVM when the product is EVM-native |
57
- | Other | chain-native | `UNSUPPORTED` until classified | Add and verify a dedicated adapter before preparing transactions |
58
-
59
- ## 1. Build the collection manifest
60
-
61
- Do not generate contract or metadata artifacts until this manifest is complete:
62
-
63
- ```yaml
64
- collection:
65
- name: ""
66
- symbol: ""
67
- chain_family: ""
68
- chain_name: ""
69
- chain_id_or_genesis: ""
70
- network: mainnet|testnet|devnet|local
71
- standard: ""
72
- supply: 0
73
- edition_size: 1
74
- onchain_media: false
75
- license: ""
76
- content_rating: ""
77
- mint:
78
- price: ""
79
- currency: ""
80
- treasury: ""
81
- per_wallet: 0
82
- allowlist_root: none
83
- allowlist_start: null
84
- public_start: null
85
- public_end: null
86
- reveal: immediate|delayed|commit-reveal|vrf
87
- metadata:
88
- base_uri: ""
89
- storage: ipfs|arweave|onchain|other
90
- mutable: false
91
- provenance_root: ""
92
- placeholder_uri: none
93
- royalties:
94
- bps: 0
95
- recipients: []
96
- authorities:
97
- owner: ""
98
- mint: ""
99
- metadata_update: none
100
- freeze: none
101
- pause: none
102
- withdraw: ""
103
- upgrade: none
104
- ```
105
-
106
- Validate supply against generated metadata count. Record raw payment units and
107
- human-readable units. Royalty splits must reconcile exactly.
108
-
109
- ## 2. Set rights, metadata, and provenance first
110
-
111
- 1. State who owns the media and which license collectors receive.
112
- 2. Hash every final media and metadata file.
113
- 3. Validate token IDs or asset indexes are unique and contiguous when required.
114
- 4. Pin or upload content only after the user approves that side effect.
115
- 5. Build a deterministic provenance root over the final ordered assets.
116
- 6. Separate placeholder metadata from final metadata.
117
- 7. State whether metadata can change, who can change it, and how that authority is
118
- transferred or revoked.
119
- 8. Never promise immutable media when the JSON points to mutable HTTP storage.
120
-
121
- Metadata upload, contract deployment, first mint, reveal, marketplace verification,
122
- and authority revocation are separate actions.
123
-
124
- ## 3. Force an authority and economics review
125
-
126
- Before preparing transactions, print a table for:
127
-
128
- - contract, package, or program upgrade authority
129
- - collection owner
130
- - mint authority
131
- - freeze or transfer-restriction authority
132
- - metadata update authority
133
- - reveal authority
134
- - pause authority
135
- - treasury withdrawal authority
136
- - royalty recipient and royalty update authority
137
- - allowlist root setter
138
- - supply increase or edition authority
139
-
140
- For each, state initial holder, mutability, transfer/revoke action, and operational
141
- consequence of revocation.
142
-
143
- Also disclose:
144
-
145
- - total supply and reserved supply
146
- - mint phases and wallet caps
147
- - mint price and payment token
148
- - treasury destination
149
- - creator/team allocation
150
- - royalties and whether marketplaces can ignore them
151
- - upgradeability
152
- - delayed reveal and randomness assumptions
153
- - estimated deploy, storage, mint, and reveal costs
154
-
155
- Never market royalties as guaranteed income. Many marketplaces treat them as
156
- optional.
157
-
158
- ## 4. Family-specific build paths
159
-
160
- ### EVM
161
-
162
- Choose ERC-721 for unique items and ERC-1155 for editions or mixed fungibility.
163
- Add ERC-2981 only as a royalty signal, not enforcement.
164
-
165
- Prefer reviewed OpenZeppelin bases and minimal immutable deployment. If a proxy is
166
- required, show proxy admin, implementation upgrade authority, and timelock.
167
-
168
- Required Foundry coverage:
169
-
170
- - maximum supply and reserved supply cannot be exceeded
171
- - per-wallet and per-phase caps
172
- - exact payment and refund behavior
173
- - treasury withdrawal and reentrancy resistance
174
- - allowlist proof validation and replay boundaries
175
- - reveal ordering and provenance
176
- - metadata freeze or update permissions
177
- - royalty values and recipients
178
- - pause behavior
179
- - owner cannot mint hidden supply
180
- - ERC-721 or ERC-1155 interface conformance
181
-
182
- Run `forge test`, static analysis when available, fork or RPC simulation, and dry-run
183
- deploy. Prepare contract verification separately. Initial mint, public mint opening,
184
- base URI change, reveal, and ownership transfer are separate unsigned actions.
185
-
186
- ### Solana
187
-
188
- Choose one product shape before code:
189
-
190
- - Metaplex Core for a modern asset/collection model
191
- - Token Metadata collection for compatibility with legacy NFT tooling
192
- - Candy Machine or another audited drop program for staged public mints
193
-
194
- Do not mix models casually. Print all collection, update, freeze/delegate, mint,
195
- rule-set, and candy-machine authorities.
196
-
197
- Prepare ordered unsigned transactions for:
198
-
199
- 1. create the collection asset or collection mint
200
- 2. create and verify collection metadata
201
- 3. create drop/mint configuration when used
202
- 4. fund storage/rent accounts
203
- 5. mint or reserve initial assets
204
- 6. verify items into the collection
205
- 7. transfer or revoke update/mint authorities
206
-
207
- Simulate against the intended cluster. Validate account owners, rent, compute units,
208
- address lookup tables, and transaction size. Rebuild expired blockhashes rather than
209
- editing signed data.
210
-
211
- ### Bitcoin Ordinals
212
-
213
- A Bitcoin collection is normally an indexer-recognized group of inscriptions, not a
214
- collection smart contract. Build:
215
-
216
- - canonical collection metadata and provenance manifest
217
- - parent inscription plan
218
- - child inscription relationships when supported
219
- - exact content type and content hash for every item
220
- - deterministic inscription order
221
- - commit and reveal PSBT plan
222
- - postage, fee rate, reveal destinations, and recovery addresses
223
-
224
- Protect commit UTXOs from accidental spends. Account for fee changes, reorgs,
225
- inscription ordering, and cursed/unbound outcomes. Do not promise stable inscription
226
- numbers before confirmation. Collection listing with an indexer or marketplace is a
227
- separate side effect after confirmed inscription IDs exist.
228
-
229
- ### Cosmos
230
-
231
- First identify the target's actual NFT primitive. CW721, a chain-native NFT module,
232
- and an EVM runtime are not interchangeable.
233
-
234
- For CW721, verify the exact code artifact, checksum, instantiate message, minter,
235
- metadata extension schema, royalty extension if any, migration admin, and chain gas
236
- model. For a native module, verify current protobuf messages and authority behavior
237
- from the running chain version. Use the EVM path only for a proven EVM runtime.
238
-
239
- ### Sui
240
-
241
- Model collection, item objects, treasury or publisher capabilities, display
242
- metadata, transfer policy, royalties/kiosk behavior, package upgrade policy, and
243
- shared versus owned objects. Test package publish, collection creation, mint,
244
- transfer, and authority transfer on testnet before any mainnet prepare.
245
-
246
- ### Aptos
247
-
248
- Use the current Digital Asset or chain-native collection standard verified against
249
- the target network. Define collection mutability, token mutability, mint refs,
250
- burn/transfer refs, royalty data, supply caps, and module upgrade policy. Publish and
251
- exercise the lifecycle on testnet first.
252
-
253
- ### Hyperliquid
254
-
255
- HyperEVM NFT launches use the EVM path. Do not assume Hyperliquid L1 has a generic
256
- NFT collection primitive because HyperCore supports spot, perps, staking, or outcome
257
- markets. Without a verified official L1 standard and adapter, mark it `UNSUPPORTED`.
258
-
259
- ## 5. Mint phases and randomness
260
-
261
- For allowlists:
262
-
263
- - bind proofs to chain, contract/program, phase, wallet, allowance, price, and expiry
264
- - publish the snapshot method and Merkle root
265
- - prevent proof reuse across phases or contracts
266
- - test wallet caps across allowlist and public phases together
267
-
268
- For delayed reveal or randomized assignment:
269
-
270
- - commit the final provenance before mint
271
- - do not use timestamp, recent block hash, predictable block fields, or validator
272
- discretion as sole randomness
273
- - use a verified randomness source or a deterministic disclosed assignment
274
- - show who can trigger reveal and whether they can reroll
275
- - publish gacha odds when rarity is randomized
276
-
277
- Load `oracle-nft-gacha-launch` for packs, loot boxes, or paid random outcomes.
278
-
279
- ## 6. Marketplace and launch-page setup
280
-
281
- Marketplace listing is not deployment. Only prepare it after contract/program or
282
- inscription identifiers are final.
283
-
284
- Before a mint page can claim ready:
285
-
286
- - wallet and network switching work
287
- - contract/program and payment destinations are exact
288
- - total and per-wallet cost include gas/fees
289
- - sold-out and phase transitions read chain state
290
- - failed/rejected transactions surface clearly
291
- - mint count cannot exceed the approved cap
292
- - metadata preview comes from the pinned manifest
293
- - no private key or seed phrase is requested
294
-
295
- Never fabricate floor price, bids, volume, rarity, or sold count.
296
-
297
- ## 7. Required artifacts
298
-
299
- A completed prepare run returns:
300
-
301
- 1. `collection-manifest.yaml`
302
- 2. ordered metadata/media checksums and provenance root
303
- 3. rights/license statement
304
- 4. authority and mutability table
305
- 5. source/package hash and dependency lock
306
- 6. test and static-analysis results
307
- 7. target-chain simulation or an explicit missing-capability note
308
- 8. fee, rent, postage, and treasury estimate as applicable
309
- 9. ordered unsigned transaction or PSBT bundle with payload hashes
310
- 10. source/program verification payload
311
- 11. separate metadata upload, marketplace, reveal, and authority-revoke actions
312
- 12. final user approval checklist, one side effect per line
313
-
314
- Do not emit signed transactions, private keys, seed phrases, keystore passwords, or
315
- broadcast commands with signing enabled.
316
-
317
- ## Refusals
318
-
319
- Refuse stolen media, hidden supply, owner-only rerolls, fake randomness, metadata
320
- rugs, undisclosed upgrades, wash trading, fake floor/volume, deceptive rarity,
321
- royalty claims presented as guaranteed, and wallet-draining mint pages.
322
-
323
- ## Completion gate
324
-
325
- A collection is only `PREPARED` when:
326
-
327
- - chain and standard are exact
328
- - support status is honest
329
- - supply matches metadata
330
- - rights and storage are explicit
331
- - all authorities and mutable fields are disclosed
332
- - tests pass
333
- - simulation passes or the missing capability is explicit
334
- - every destination and payload hash is recorded
335
- - no signing, upload, marketplace listing, or broadcast occurred without separate
336
- user approval
337
-
338
- Anything less is `DRAFT`, `RESEARCH_ONLY`, or `UNSUPPORTED`.