@oracle-agent/oracle 0.14.1 → 0.16.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 (450) hide show
  1. package/README.md +2 -2
  2. package/SETUP.md +4 -4
  3. package/dist/action-receipts.mjs +1 -0
  4. package/dist/action-semantics.mjs +1 -0
  5. package/dist/address-book.mjs +2 -0
  6. package/dist/bin/desk-server.mjs +60 -0
  7. package/dist/bin/oracle-data-mcp.mjs +9 -0
  8. package/dist/bin/oracle-equities.mjs +20 -0
  9. package/dist/bin/oracle-init.mjs +24 -0
  10. package/dist/bin/oracle-public-server.mjs +5 -0
  11. package/dist/bin/oracle-route.mjs +22 -0
  12. package/dist/bin/oracle-scan.mjs +18 -0
  13. package/dist/bin/oracle-upgrade.mjs +21 -0
  14. package/dist/bin/oracle.mjs +63 -0
  15. package/dist/chains.mjs +1 -0
  16. package/dist/cli/commands/auth.mjs +16 -0
  17. package/dist/cli/commands/bootstrap.mjs +18 -0
  18. package/dist/cli/commands/chain.mjs +21 -0
  19. package/dist/cli/commands/chat.mjs +45 -0
  20. package/dist/cli/commands/credential.mjs +1 -0
  21. package/dist/cli/commands/data-mcp.mjs +2 -0
  22. package/dist/cli/commands/data.mjs +12 -0
  23. package/dist/cli/commands/doctor.mjs +5 -0
  24. package/dist/cli/commands/equities.mjs +15 -0
  25. package/dist/cli/commands/farm.mjs +59 -0
  26. package/dist/cli/commands/fees.mjs +10 -0
  27. package/dist/cli/commands/follow.mjs +28 -0
  28. package/dist/cli/commands/harness.mjs +15 -0
  29. package/dist/cli/commands/help.mjs +1 -0
  30. package/dist/cli/commands/init.mjs +3 -0
  31. package/dist/cli/commands/mcp.mjs +36 -0
  32. package/dist/cli/commands/model.mjs +54 -0
  33. package/dist/cli/commands/plugins.mjs +43 -0
  34. package/dist/cli/commands/prepare.mjs +2 -0
  35. package/dist/cli/commands/public.mjs +3 -0
  36. package/dist/cli/commands/resolve.mjs +23 -0
  37. package/dist/cli/commands/route.mjs +2 -0
  38. package/dist/cli/commands/runner.mjs +1 -0
  39. package/dist/cli/commands/scan.mjs +2 -0
  40. package/dist/cli/commands/setup.mjs +34 -0
  41. package/dist/cli/commands/sign.mjs +4 -0
  42. package/dist/cli/commands/signer.mjs +1 -0
  43. package/dist/cli/commands/strategy.mjs +18 -0
  44. package/dist/cli/commands/swap.mjs +36 -0
  45. package/dist/cli/commands/upgrade.mjs +2 -0
  46. package/dist/cli/commands/vault.mjs +1 -0
  47. package/dist/cli/commands/version.mjs +2 -0
  48. package/dist/data/desk-data.mjs +55 -0
  49. package/dist/data/names.mjs +2 -0
  50. package/dist/data/providers/farming.mjs +2 -0
  51. package/dist/equities/index.mjs +1 -0
  52. package/dist/index.mjs +60 -0
  53. package/dist/nft-gas-war-guard.mjs +1 -0
  54. package/dist/onboarding/harness-configs.mjs +4 -0
  55. package/dist/portfolio-risk.mjs +1 -0
  56. package/dist/prepare-envelope.mjs +1 -0
  57. package/dist/public-api/agent-grants.mjs +3 -0
  58. package/dist/public-control/policy-schema.mjs +1 -0
  59. package/dist/router/index.mjs +2 -0
  60. package/dist/scanner/index.mjs +4 -0
  61. package/dist/signals/index.mjs +1 -0
  62. package/dist/strategy/index.mjs +3 -0
  63. package/dist/watch-preferences.mjs +1 -0
  64. package/package.json +33 -78
  65. package/public/oracle-splash/_variants/ice.html +5 -18
  66. package/public/oracle-splash/_variants/ivory.html +5 -18
  67. package/public/oracle-splash/downloads/index.html +4 -4
  68. package/public/oracle-splash/index.html +113 -34
  69. package/CONTRIBUTING.md +0 -99
  70. package/bin/desk-server.mjs +0 -473
  71. package/bin/oracle-data-mcp.mjs +0 -1252
  72. package/bin/oracle-equities.mjs +0 -168
  73. package/bin/oracle-init.mjs +0 -525
  74. package/bin/oracle-public-server.mjs +0 -36
  75. package/bin/oracle-route.mjs +0 -254
  76. package/bin/oracle-scan.mjs +0 -192
  77. package/bin/oracle-upgrade.mjs +0 -42
  78. package/bin/oracle.mjs +0 -34
  79. package/docs/adding-a-chain.md +0 -229
  80. package/docs/architecture.md +0 -139
  81. package/docs/buzz-integration.md +0 -115
  82. package/docs/cli.md +0 -143
  83. package/docs/connectors.md +0 -13
  84. package/docs/hyperliquid-builder-code.md +0 -50
  85. package/docs/locals-only-fee-waiver.md +0 -34
  86. package/docs/oracle-pack-standard.md +0 -29
  87. package/docs/profiles.md +0 -151
  88. package/docs/public-surface.md +0 -206
  89. package/examples/add-a-chain.mjs +0 -65
  90. package/examples/oracle-pack-template.mjs +0 -38
  91. package/examples/research-a-token.mjs +0 -70
  92. package/plugins/oracle-owner-gate/__init__.py +0 -288
  93. package/plugins/oracle-owner-gate/plugin.yaml +0 -9
  94. package/protocols/templates/safe-erc20/SECURITY.md +0 -16
  95. package/protocols/templates/safe-erc20/foundry.toml +0 -12
  96. package/protocols/templates/safe-erc20/remappings.txt +0 -2
  97. package/protocols/templates/safe-erc20/src/SafeERC20.sol +0 -53
  98. package/protocols/templates/safe-erc20/test/SafeERC20.t.sol +0 -72
  99. package/scripts/adversarial-bench.mjs +0 -114
  100. package/scripts/build-dist.mjs +0 -119
  101. package/scripts/build-inscription.py +0 -230
  102. package/scripts/check-doc-drift.mjs +0 -123
  103. package/scripts/check-test-count.mjs +0 -105
  104. package/scripts/e2e-hl-markets.mjs +0 -21
  105. package/scripts/e2e-hl-perps.mjs +0 -48
  106. package/scripts/e2e-hypercore-staking.mjs +0 -128
  107. package/scripts/e2e-solana-bitcoin.mjs +0 -183
  108. package/scripts/guard-publish.mjs +0 -22
  109. package/scripts/protocol-template-gate.mjs +0 -15
  110. package/scripts/public-api-scan.mjs +0 -23
  111. package/scripts/publish-dist.mjs +0 -67
  112. package/scripts/record-hero-cli.sh +0 -80
  113. package/scripts/secret-scan.mjs +0 -169
  114. package/scripts/smoke-dist-bins.mjs +0 -89
  115. package/scripts/verify-dist.mjs +0 -29
  116. package/scripts/verify-v3-venues.mjs +0 -233
  117. package/skins/oracle.yaml +0 -56
  118. package/src/action-receipts.mjs +0 -265
  119. package/src/action-semantics.mjs +0 -62
  120. package/src/address-book.mjs +0 -208
  121. package/src/agent-auth.mjs +0 -206
  122. package/src/approval-guard.mjs +0 -282
  123. package/src/attestation-secret.mjs +0 -94
  124. package/src/audit-log.mjs +0 -196
  125. package/src/auth/oauth.mjs +0 -672
  126. package/src/auto-slippage.mjs +0 -378
  127. package/src/capability-posture.mjs +0 -125
  128. package/src/cards.mjs +0 -422
  129. package/src/chains.mjs +0 -62
  130. package/src/cli/chain-catalog.mjs +0 -215
  131. package/src/cli/chain-state.mjs +0 -74
  132. package/src/cli/commands/auth.mjs +0 -193
  133. package/src/cli/commands/bootstrap.mjs +0 -87
  134. package/src/cli/commands/chain.mjs +0 -143
  135. package/src/cli/commands/chat.mjs +0 -465
  136. package/src/cli/commands/credential.mjs +0 -9
  137. package/src/cli/commands/data-mcp.mjs +0 -18
  138. package/src/cli/commands/data.mjs +0 -75
  139. package/src/cli/commands/doctor.mjs +0 -136
  140. package/src/cli/commands/equities.mjs +0 -41
  141. package/src/cli/commands/farm.mjs +0 -129
  142. package/src/cli/commands/fees.mjs +0 -109
  143. package/src/cli/commands/follow.mjs +0 -130
  144. package/src/cli/commands/harness.mjs +0 -63
  145. package/src/cli/commands/help.mjs +0 -7
  146. package/src/cli/commands/init.mjs +0 -27
  147. package/src/cli/commands/mcp.mjs +0 -154
  148. package/src/cli/commands/model.mjs +0 -106
  149. package/src/cli/commands/plugins.mjs +0 -275
  150. package/src/cli/commands/prepare.mjs +0 -12
  151. package/src/cli/commands/public.mjs +0 -20
  152. package/src/cli/commands/resolve.mjs +0 -64
  153. package/src/cli/commands/route.mjs +0 -12
  154. package/src/cli/commands/runner.mjs +0 -9
  155. package/src/cli/commands/scan.mjs +0 -12
  156. package/src/cli/commands/setup.mjs +0 -294
  157. package/src/cli/commands/sign.mjs +0 -21
  158. package/src/cli/commands/signer.mjs +0 -9
  159. package/src/cli/commands/swap.mjs +0 -102
  160. package/src/cli/commands/upgrade.mjs +0 -12
  161. package/src/cli/commands/vault.mjs +0 -9
  162. package/src/cli/commands/version.mjs +0 -22
  163. package/src/cli/first-run.mjs +0 -23
  164. package/src/cli/kernel.mjs +0 -262
  165. package/src/cli/mcp-targets/chatgpt.mjs +0 -51
  166. package/src/cli/mcp-targets/claude-code.mjs +0 -39
  167. package/src/cli/mcp-targets/claude-desktop.mjs +0 -24
  168. package/src/cli/mcp-targets/codex.mjs +0 -41
  169. package/src/cli/mcp-targets/cursor.mjs +0 -32
  170. package/src/cli/mcp-targets/shared.mjs +0 -71
  171. package/src/cli/mcp-targets/vscode.mjs +0 -39
  172. package/src/cli/messaging-platforms.mjs +0 -217
  173. package/src/cli/model-config.mjs +0 -78
  174. package/src/cli/operator-dispatch.mjs +0 -194
  175. package/src/cli/oracle-harness.py +0 -415
  176. package/src/cli/paths.mjs +0 -107
  177. package/src/cli/runtime.mjs +0 -351
  178. package/src/cli/setup-state.mjs +0 -168
  179. package/src/cli/spawn-child.mjs +0 -43
  180. package/src/data/catalog.mjs +0 -858
  181. package/src/data/desk-data.mjs +0 -877
  182. package/src/data/http.mjs +0 -253
  183. package/src/data/names.mjs +0 -188
  184. package/src/data/provider-endpoint.mjs +0 -94
  185. package/src/data/providers/aave-v3.mjs +0 -139
  186. package/src/data/providers/across-bridge.mjs +0 -41
  187. package/src/data/providers/aerodrome.mjs +0 -245
  188. package/src/data/providers/aevo.mjs +0 -33
  189. package/src/data/providers/approval-indexer.mjs +0 -133
  190. package/src/data/providers/approvals.mjs +0 -594
  191. package/src/data/providers/babylon-staking.mjs +0 -149
  192. package/src/data/providers/balancer.mjs +0 -209
  193. package/src/data/providers/beefy-yields.mjs +0 -45
  194. package/src/data/providers/birdeye-tokens.mjs +0 -33
  195. package/src/data/providers/bisq-markets.mjs +0 -145
  196. package/src/data/providers/bitcoin-esplora.mjs +0 -216
  197. package/src/data/providers/bitcoin-meta.mjs +0 -378
  198. package/src/data/providers/blockscout.mjs +0 -14
  199. package/src/data/providers/bob-rootstock.mjs +0 -198
  200. package/src/data/providers/braiins-insights.mjs +0 -103
  201. package/src/data/providers/bridge-aggregator.mjs +0 -259
  202. package/src/data/providers/bridges.mjs +0 -242
  203. package/src/data/providers/bungee.mjs +0 -29
  204. package/src/data/providers/celestia-da.mjs +0 -38
  205. package/src/data/providers/changenow.mjs +0 -135
  206. package/src/data/providers/compound.mjs +0 -32
  207. package/src/data/providers/connext.mjs +0 -28
  208. package/src/data/providers/convex.mjs +0 -30
  209. package/src/data/providers/cow-protocol.mjs +0 -110
  210. package/src/data/providers/cowswap.mjs +0 -415
  211. package/src/data/providers/curve.mjs +0 -201
  212. package/src/data/providers/das-assets.mjs +0 -59
  213. package/src/data/providers/debridge.mjs +0 -109
  214. package/src/data/providers/defillama.mjs +0 -88
  215. package/src/data/providers/dexscreener.mjs +0 -43
  216. package/src/data/providers/drift.mjs +0 -32
  217. package/src/data/providers/dydx.mjs +0 -41
  218. package/src/data/providers/evm-rpc.mjs +0 -225
  219. package/src/data/providers/farming.mjs +0 -291
  220. package/src/data/providers/geckoterminal.mjs +0 -34
  221. package/src/data/providers/gmx.mjs +0 -496
  222. package/src/data/providers/hiro-stacks.mjs +0 -150
  223. package/src/data/providers/hl-assets.mjs +0 -165
  224. package/src/data/providers/hl-info.mjs +0 -108
  225. package/src/data/providers/hl-markets.mjs +0 -210
  226. package/src/data/providers/hl-outcome.mjs +0 -61
  227. package/src/data/providers/hl-perps.mjs +0 -419
  228. package/src/data/providers/hl-staking.mjs +0 -353
  229. package/src/data/providers/hl-ws.mjs +0 -119
  230. package/src/data/providers/hyperevm-dex.mjs +0 -49
  231. package/src/data/providers/jito-mev.mjs +0 -117
  232. package/src/data/providers/jupiter-venues.mjs +0 -119
  233. package/src/data/providers/jupiter.mjs +0 -315
  234. package/src/data/providers/kamino-strategies.mjs +0 -143
  235. package/src/data/providers/l2beat-tvl.mjs +0 -42
  236. package/src/data/providers/lifi.mjs +0 -166
  237. package/src/data/providers/liquid-esplora.mjs +0 -152
  238. package/src/data/providers/magiceden-ordinals.mjs +0 -141
  239. package/src/data/providers/magiceden-sol.mjs +0 -406
  240. package/src/data/providers/mempool-lightning.mjs +0 -144
  241. package/src/data/providers/mempool-mining.mjs +0 -142
  242. package/src/data/providers/meteora-dlmm.mjs +0 -168
  243. package/src/data/providers/morpho.mjs +0 -177
  244. package/src/data/providers/nft-gallery.mjs +0 -163
  245. package/src/data/providers/nft-portfolio.mjs +0 -494
  246. package/src/data/providers/odos.mjs +0 -156
  247. package/src/data/providers/ondo.mjs +0 -31
  248. package/src/data/providers/oneinch.mjs +0 -174
  249. package/src/data/providers/opensea-multichain.mjs +0 -136
  250. package/src/data/providers/opensea-nft.mjs +0 -371
  251. package/src/data/providers/orca.mjs +0 -29
  252. package/src/data/providers/ordinals-runes.mjs +0 -180
  253. package/src/data/providers/pancakeswap.mjs +0 -28
  254. package/src/data/providers/paraswap.mjs +0 -125
  255. package/src/data/providers/pendle.mjs +0 -188
  256. package/src/data/providers/poly-clob.mjs +0 -283
  257. package/src/data/providers/poly-public.mjs +0 -96
  258. package/src/data/providers/poly-ws.mjs +0 -103
  259. package/src/data/providers/polygon-staking.mjs +0 -227
  260. package/src/data/providers/portfolio-history.mjs +0 -394
  261. package/src/data/providers/portfolio.mjs +0 -600
  262. package/src/data/providers/pyth-price-feeds.mjs +0 -172
  263. package/src/data/providers/raydium.mjs +0 -35
  264. package/src/data/providers/relayscan-mev.mjs +0 -72
  265. package/src/data/providers/rfq.mjs +0 -15
  266. package/src/data/providers/rh-agent.mjs +0 -59
  267. package/src/data/providers/sanctum-lst.mjs +0 -180
  268. package/src/data/providers/satflow.mjs +0 -341
  269. package/src/data/providers/signed-material-guard.mjs +0 -108
  270. package/src/data/providers/solana-rpc.mjs +0 -197
  271. package/src/data/providers/solend-lending.mjs +0 -166
  272. package/src/data/providers/spark-lend.mjs +0 -42
  273. package/src/data/providers/squid-router.mjs +0 -29
  274. package/src/data/providers/stargate.mjs +0 -29
  275. package/src/data/providers/sushiswap.mjs +0 -30
  276. package/src/data/providers/symbiotic-restaking.mjs +0 -41
  277. package/src/data/providers/thorchain.mjs +0 -36
  278. package/src/data/providers/traderjoe.mjs +0 -28
  279. package/src/data/providers/twap.mjs +0 -152
  280. package/src/data/providers/uniswap-v3.mjs +0 -457
  281. package/src/data/providers/uniswap-v4.mjs +0 -414
  282. package/src/data/providers/vertex.mjs +0 -41
  283. package/src/data/providers/wallet-watch.mjs +0 -264
  284. package/src/data/providers/wormhole.mjs +0 -28
  285. package/src/data/providers/yearn.mjs +0 -31
  286. package/src/data/providers/zerox.mjs +0 -167
  287. package/src/data/public-api-scan.mjs +0 -61
  288. package/src/data/quote-placeholder.mjs +0 -31
  289. package/src/desk/swap-prepare.mjs +0 -194
  290. package/src/equities/bridge.mjs +0 -388
  291. package/src/equities/fixtures/bridge_routes.json +0 -159
  292. package/src/equities/fixtures/dst_transitions.json +0 -29
  293. package/src/equities/fixtures/equity_dex_pools.json +0 -154
  294. package/src/equities/fixtures/hip3_l2books.json +0 -2711
  295. package/src/equities/fixtures/nyse_holidays.json +0 -1
  296. package/src/equities/fixtures/oracles.json +0 -100
  297. package/src/equities/fixtures/rh_pool_state.json +0 -244
  298. package/src/equities/fixtures/solana_xstocks.json +0 -704
  299. package/src/equities/fixtures/ton_xstocks.json +0 -35
  300. package/src/equities/fixtures/universe.json +0 -411
  301. package/src/equities/fixtures/venues.json +0 -3542
  302. package/src/equities/fixtures.mjs +0 -405
  303. package/src/equities/funding.mjs +0 -142
  304. package/src/equities/index.mjs +0 -166
  305. package/src/equities/liveness.mjs +0 -148
  306. package/src/equities/marketHours.mjs +0 -249
  307. package/src/equities/normalize.mjs +0 -295
  308. package/src/equities/num.mjs +0 -146
  309. package/src/equities/prepare.mjs +0 -95
  310. package/src/equities/rank.mjs +0 -260
  311. package/src/equities/sourceNum.mjs +0 -69
  312. package/src/equities/types.mjs +0 -220
  313. package/src/equities/venues/arcus-perp.mjs +0 -84
  314. package/src/equities/venues/arcus-spot.mjs +0 -105
  315. package/src/equities/venues/hyperliquid-hip3.mjs +0 -224
  316. package/src/equities/venues/rh-uniswap.mjs +0 -216
  317. package/src/equities/venues/solana-xstocks.mjs +0 -139
  318. package/src/equities/venues/ton-stonfi.mjs +0 -139
  319. package/src/exact-integer.mjs +0 -72
  320. package/src/exec-policy.mjs +0 -419
  321. package/src/flags.mjs +0 -15
  322. package/src/fresh-window.mjs +0 -76
  323. package/src/gmx-attestation.mjs +0 -176
  324. package/src/index.mjs +0 -107
  325. package/src/licensing/locals-only.mjs +0 -25
  326. package/src/nft-gas-war-guard.mjs +0 -139
  327. package/src/onboarding/agent-keys.mjs +0 -161
  328. package/src/onboarding/harness-configs.mjs +0 -102
  329. package/src/onboarding/index.mjs +0 -18
  330. package/src/onboarding/tiers.mjs +0 -139
  331. package/src/oracle-env.mjs +0 -55
  332. package/src/package-manifest.mjs +0 -42
  333. package/src/plugins/agent-plugin-loader.mjs +0 -225
  334. package/src/portfolio-risk.mjs +0 -170
  335. package/src/prepare-envelope.mjs +0 -204
  336. package/src/profile-upgrade.mjs +0 -277
  337. package/src/protocol-execution.mjs +0 -84
  338. package/src/protocol-templates/gate.mjs +0 -179
  339. package/src/protocol-templates/prepare-deploy.mjs +0 -81
  340. package/src/public-api/agent-grants.mjs +0 -57
  341. package/src/public-api/buzz-integration.mjs +0 -267
  342. package/src/public-api/connect-agent.mjs +0 -424
  343. package/src/public-api/grants.mjs +0 -142
  344. package/src/public-api/http.mjs +0 -707
  345. package/src/public-api/metering.mjs +0 -111
  346. package/src/public-control/aa-adapter.mjs +0 -402
  347. package/src/public-control/build-registry.mjs +0 -227
  348. package/src/public-control/bundler-client.mjs +0 -357
  349. package/src/public-control/grant-indexer.mjs +0 -296
  350. package/src/public-control/policy-render.mjs +0 -69
  351. package/src/public-control/policy-schema.mjs +0 -322
  352. package/src/public-control/runtime-config.mjs +0 -275
  353. package/src/public-control/session-key-model.mjs +0 -379
  354. package/src/public-control/session-orchestrator.mjs +0 -418
  355. package/src/rfq/intent.mjs +0 -180
  356. package/src/rfq/sources.mjs +0 -181
  357. package/src/route-attestation.mjs +0 -132
  358. package/src/router/best-execution.mjs +0 -326
  359. package/src/router/index.mjs +0 -250
  360. package/src/router/integrator-fee.mjs +0 -135
  361. package/src/router/prepare-bridge.mjs +0 -293
  362. package/src/router/prepare-route.mjs +0 -398
  363. package/src/router/proposal.mjs +0 -311
  364. package/src/router/risk-classifier.mjs +0 -119
  365. package/src/router/route-sources.mjs +0 -364
  366. package/src/scanner/chains.config.mjs +0 -543
  367. package/src/scanner/contract.mjs +0 -270
  368. package/src/scanner/evm-scanner.mjs +0 -394
  369. package/src/scanner/index.mjs +0 -9
  370. package/src/scanner/v2-venue.mjs +0 -351
  371. package/src/scanner/v3-venue.mjs +0 -308
  372. package/src/scopes.mjs +0 -44
  373. package/src/sell-simulation.mjs +0 -167
  374. package/src/signals/engine.mjs +0 -146
  375. package/src/signals/index.mjs +0 -1
  376. package/src/token-transfer-guard.mjs +0 -188
  377. package/src/tui/app.mjs +0 -438
  378. package/src/tui/backend.mjs +0 -215
  379. package/src/tui/format.mjs +0 -272
  380. package/src/tui/gateway-client.mjs +0 -177
  381. package/src/tui/input.mjs +0 -501
  382. package/src/tui/memory.mjs +0 -105
  383. package/src/tui/meta-learn.mjs +0 -85
  384. package/src/tui/renderer.mjs +0 -443
  385. package/src/tui/scheduler.mjs +0 -205
  386. package/src/tui/skills-loader.mjs +0 -140
  387. package/src/tui/standalone-client.mjs +0 -752
  388. package/src/tui/theme.mjs +0 -81
  389. package/src/vault-attestation.mjs +0 -146
  390. package/src/venues.mjs +0 -206
  391. package/src/watch-preferences.mjs +0 -85
  392. /package/{profiles → dist/assets/profiles}/_template/SOUL.md +0 -0
  393. /package/{profiles → dist/assets/profiles}/_template/profile.json +0 -0
  394. /package/{profiles → dist/assets/profiles}/bitcoin-agent/SOUL.md +0 -0
  395. /package/{profiles → dist/assets/profiles}/bitcoin-agent/profile.json +0 -0
  396. /package/{profiles → dist/assets/profiles}/hyperliquid-agent/SOUL.md +0 -0
  397. /package/{profiles → dist/assets/profiles}/hyperliquid-agent/profile.json +0 -0
  398. /package/{profiles → dist/assets/profiles}/oracle/SOUL.md +0 -0
  399. /package/{profiles → dist/assets/profiles}/oracle/profile.json +0 -0
  400. /package/{profiles → dist/assets/profiles}/polymarket-agent/SOUL.md +0 -0
  401. /package/{profiles → dist/assets/profiles}/polymarket-agent/profile.json +0 -0
  402. /package/{profiles → dist/assets/profiles}/profile.schema.json +0 -0
  403. /package/{profiles → dist/assets/profiles}/protocol-builder/SOUL.md +0 -0
  404. /package/{profiles → dist/assets/profiles}/protocol-builder/profile.json +0 -0
  405. /package/{profiles → dist/assets/profiles}/robinhood-agent/SOUL.md +0 -0
  406. /package/{profiles → dist/assets/profiles}/robinhood-agent/profile.json +0 -0
  407. /package/{profiles → dist/assets/profiles}/solana-agent/SOUL.md +0 -0
  408. /package/{profiles → dist/assets/profiles}/solana-agent/profile.json +0 -0
  409. /package/{profiles → dist/assets/profiles}/stable-agent/SOUL.md +0 -0
  410. /package/{profiles → dist/assets/profiles}/stable-agent/profile.json +0 -0
  411. /package/{skills → dist/assets/skills}/balance/SKILL.md +0 -0
  412. /package/{skills → dist/assets/skills}/bitcoin-l1.md +0 -0
  413. /package/{skills → dist/assets/skills}/chain-defi-ecosystem-profiling.md +0 -0
  414. /package/{skills → dist/assets/skills}/evm-contract-research.md +0 -0
  415. /package/{skills → dist/assets/skills}/hyperliquid.md +0 -0
  416. /package/{skills → dist/assets/skills}/multichain-exec-desk.md +0 -0
  417. /package/{skills → dist/assets/skills}/oracle-action-semantics/SKILL.md +0 -0
  418. /package/{skills → dist/assets/skills}/oracle-best-execution/SKILL.md +0 -0
  419. /package/{skills → dist/assets/skills}/oracle-best-execution.md +0 -0
  420. /package/{skills → dist/assets/skills}/oracle-bitcoin/SKILL.md +0 -0
  421. /package/{skills → dist/assets/skills}/oracle-chain-graphs-telegram-cards/SKILL.md +0 -0
  422. /package/{skills → dist/assets/skills}/oracle-chat/SKILL.md +0 -0
  423. /package/{skills → dist/assets/skills}/oracle-chat/chain.SKILL.md +0 -0
  424. /package/{skills → dist/assets/skills}/oracle-chat/setup.SKILL.md +0 -0
  425. /package/{skills → dist/assets/skills}/oracle-circuit-breaker/SKILL.md +0 -0
  426. /package/{skills → dist/assets/skills}/oracle-contract-research/SKILL.md +0 -0
  427. /package/{skills → dist/assets/skills}/oracle-desk/SKILL.md +0 -0
  428. /package/{skills → dist/assets/skills}/oracle-desk.md +0 -0
  429. /package/{skills → dist/assets/skills}/oracle-dex-launch/SKILL.md +0 -0
  430. /package/{skills → dist/assets/skills}/oracle-equities/SKILL.md +0 -0
  431. /package/{skills → dist/assets/skills}/oracle-grants/SKILL.md +0 -0
  432. /package/{skills → dist/assets/skills}/oracle-hypercore-staking/SKILL.md +0 -0
  433. /package/{skills → dist/assets/skills}/oracle-hyperliquid/SKILL.md +0 -0
  434. /package/{skills → dist/assets/skills}/oracle-meme-token-sniper/SKILL.md +0 -0
  435. /package/{skills → dist/assets/skills}/oracle-multichain-nft-launch/SKILL.md +0 -0
  436. /package/{skills → dist/assets/skills}/oracle-multichain-token-launch/SKILL.md +0 -0
  437. /package/{skills → dist/assets/skills}/oracle-nft-gacha-launch/SKILL.md +0 -0
  438. /package/{skills → dist/assets/skills}/oracle-nft-mint-gas-war/SKILL.md +0 -0
  439. /package/{skills → dist/assets/skills}/oracle-polymarket/SKILL.md +0 -0
  440. /package/{skills → dist/assets/skills}/oracle-protocol-builder/SKILL.md +0 -0
  441. /package/{skills → dist/assets/skills}/oracle-protocol-security/SKILL.md +0 -0
  442. /package/{skills → dist/assets/skills}/oracle-public-product/SKILL.md +0 -0
  443. /package/{skills → dist/assets/skills}/oracle-receipts/SKILL.md +0 -0
  444. /package/{skills → dist/assets/skills}/oracle-receipts.md +0 -0
  445. /package/{skills → dist/assets/skills}/oracle-rfq-tokenized-assets/SKILL.md +0 -0
  446. /package/{skills → dist/assets/skills}/oracle-smart-wallet-scanner/SKILL.md +0 -0
  447. /package/{skills → dist/assets/skills}/oracle-solana/SKILL.md +0 -0
  448. /package/{skills → dist/assets/skills}/oracle-solana-nft/SKILL.md +0 -0
  449. /package/{skills → dist/assets/skills}/oracle-token-research/SKILL.md +0 -0
  450. /package/{skills → dist/assets/skills}/solana.md +0 -0
@@ -6,9 +6,20 @@
6
6
  <title>ORACLE</title>
7
7
  <link rel="icon" href="/favicon.svg" type="image/svg+xml">
8
8
  <link rel="shortcut icon" href="/favicon.ico">
9
- <meta name="description" content="ORACLE is a self-custodial agent control plane for wallets, markets, and protocol routes.">
9
+ <meta name="description" content="Trade, research, and build across every chain. Fully self-custodial.">
10
10
  <meta name="theme-color" content="#0B1018" />
11
11
  <meta name="robots" content="index,follow" />
12
+ <meta property="og:title" content="ORACLE | The all-in-one multichain agent">
13
+ <meta property="og:description" content="Trade, research, and build across every chain. Fully self-custodial.">
14
+ <meta property="og:image" content="https://oracle.demi.la/assets/hero/orb-poster.jpg">
15
+ <meta property="og:image:width" content="900">
16
+ <meta property="og:image:height" content="900">
17
+ <meta property="og:url" content="https://oracle.demi.la/">
18
+ <meta property="og:type" content="website">
19
+ <meta name="twitter:card" content="summary_large_image">
20
+ <meta name="twitter:title" content="ORACLE | The all-in-one multichain agent">
21
+ <meta name="twitter:description" content="Trade, research, and build across every chain. Fully self-custodial.">
22
+ <meta name="twitter:image" content="https://oracle.demi.la/assets/hero/orb-poster.jpg">
12
23
  <link rel="preconnect" href="https://fonts.googleapis.com" />
13
24
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
14
25
  <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=IBM+Plex+Mono:wght@400;500;600&family=Outfit:wght@300;400;500;600;700&family=UnifrakturCook:wght@700&display=swap" rel="stylesheet" />
@@ -1128,7 +1139,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1128
1139
  <div class="grain" aria-hidden="true"></div>
1129
1140
  <div class="progress" id="progress" aria-hidden="true"></div>
1130
1141
 
1131
- <div class="loader" id="loader" aria-hidden="true">
1142
+ <div class="loader out" id="loader" aria-hidden="true" style="display:none">
1132
1143
  <div class="loader-inner">
1133
1144
  <div class="loader-mark orbital" aria-hidden="true">
1134
1145
  <svg viewBox="0 0 100 100">
@@ -1176,7 +1187,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1176
1187
  <a class="enter-cta primary" href="/downloads/">Download</a>
1177
1188
  <a class="enter-cta ghost" href="#cli">See the CLI</a>
1178
1189
  </div>
1179
- <p class="hero-note-line">macOS · Windows · Linux &nbsp;/&nbsp; public CLI and desktop beta</p>
1190
+ <p class="hero-note-line">macOS · Windows · Linux &nbsp;/&nbsp; desktop app or public CLI</p>
1180
1191
  </div>
1181
1192
 
1182
1193
  <figure class="hero-product">
@@ -1469,8 +1480,8 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1469
1480
  </article>
1470
1481
  <article class="moat-card">
1471
1482
  <div class="n">evidence</div>
1472
- <h3>Decoded before you sign, receipted after</h3>
1473
- <p>minOut, impact, spender, and decoded calldata before approval; tx hash, receipt status, balance delta, and allowance state after. Unsigned artifacts export to hardware wallets. No “looks filled.”</p>
1483
+ <h3>See it before you approve. Prove it after.</h3>
1484
+ <p>Before you approve, Oracle shows what you will receive, the expected cost, and which app gets permission to move your tokens. Afterward, it shows whether the transaction succeeded, what changed in your wallet, and whether any permission is still active. You can review unsigned transactions on a hardware wallet. Nothing is marked complete without proof.</p>
1474
1485
  </article>
1475
1486
  <article class="moat-card">
1476
1487
  <div class="n">fail closed</div>
@@ -1536,7 +1547,8 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1536
1547
  <noscript><p class="agent-ask">move 5k usdc into weth, cheapest route</p></noscript>
1537
1548
  </figure>
1538
1549
  </div>
1539
- <p class="agent-caption rv">Same tool from the terminal, the desktop app, or any MCP client. Prepare-only everywhere: Oracle never holds your keys.</p>
1550
+ <p class="agent-caption rv">Same tool from the terminal, the desktop app, any MCP client, or your agent on Telegram, Discord, WhatsApp and Signal. Buzz integration shipped. Prepare-only everywhere: Oracle never holds your keys.</p>
1551
+ <div class="agent-icons rv" style="display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px"><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69.01-.03.01-.14-.07-.2-.08-.06-.19-.04-.27-.02-.12.03-1.96 1.25-5.54 3.66-.52.36-1 .53-1.42.52-.47-.01-1.37-.26-2.03-.48-.82-.27-1.47-.42-1.41-.87.03-.24.36-.49.99-.74 3.87-1.69 6.45-2.8 7.74-3.34 3.69-1.53 4.45-1.8 4.95-1.81.11 0 .36.03.52.17.14.12.18.28.2.4.02.11.04.37.01.56z" fill="#229ED9"/></svg>Telegram</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M19.27 5.33C17.94 4.71 14.48 3.26 10.68 4.77a27.98 27.98 0 0 0-6.02 3.13c-.87.51-1.3.9-1.23 1.44.07.46.57.73 1.42 1.12l.33.15c.85.38 1.28.57 1.43 1.01.08.23.07.6-.08 1.1-.15.51-.5 1.15-1.02 2.02-.34.57-.5.85-.37.99.14.15.48.11 1.09-.26 1.76-1.07 3.18-1.93 4.23-2.59 3.22-2.06 5.08-2.82 5.55-2.28.18.21.06.84-.34 1.85-.39 1.01-1.05 2.32-1.51 3.13-.24.43-.37.64-.45.74-.11.14-.2.16-.3.15-.3-.03-.73-.45-1.41-1.3-.5-.62-.94-1.08-1.26-1.25-.64-.34-1.08-.13-1.14.26-.05.29.14.61.56 1.02.43.41 1.15 1.06 1.56 1.5.53.58.82.98.85 1.28.02.24-.04.47-.46.75-.42.27-.86.41-1.34.41-.41 0-.86-.1-1.35-.29-1.7-.68-3.25-1.94-4.64-3.79a18.7 18.7 0 0 1-3.13-5.08c-.38-.79-.16-1.31.41-1.63.47-.27 1.12-.22 1.96.14a10.26 10.26 0 0 1 3.74 2.28c.36.35.68.52.96.52.21 0 .44-.07.69-.22.37-.22.65-.6.86-1.13.21-.53.34-1.14.34-1.57 0-.5-.15-.88-.45-1.12-.52-.42-1.44-.52-2.76-.3-1.71.28-3.62 1.03-5.72 2.24l-.86.49a6.72 6.72 0 0 1-1.02.51c-.37.14-.64.17-.81.09-.18-.1-.24-.29-.2-.58.04-.3.16-.56.36-.76z" fill="#5865F2"/></svg>Discord</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403-.008-.005h.008l.005-.002h-.005V19.5c0-.248.009-.498.005-.746l.003-.003c.009 0 .018.001.027.002h-.02l-.011.008-.004.024zm-.006-.225h-.003l-.008.003.003.011.003-.005a.018.018 0 0 1 .005-.009zm-.004.17h.003l-.005-.002.002.001v.001zm.02-.003.003.003-.002-.002-.001-.001zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0z" fill="#25D366"/></svg>WhatsApp</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7.64 15.52c-.38-.66-.6-1.41-.6-2.2 0-2.63 2.14-4.77 4.77-4.77 1.27 0 2.47.5 3.37 1.4.9.9 1.4 2.1 1.4 3.37 0 2.63-2.14 4.77-4.77 4.77-.79 0-1.54-.22-2.2-.6L7.5 18l.14-2.48z" fill="#3B82F6"/></svg>Signal</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" stroke="#7C4DFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>Buzz</span></div>
1540
1552
  <div class="venues rv">
1541
1553
  <div class="venues-head"><span>models // harnesses</span><span><b>bring your own model</b> · oracle is the control plane</span></div>
1542
1554
  <div class="marquee"><div class="track" id="llm-track"></div></div>
@@ -1627,7 +1639,9 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1627
1639
  <figure class="route-proof rv" style="margin-top:18px">
1628
1640
  <svg viewBox="0 0 868 456" preserveAspectRatio="xMidYMid meet" class="route-tree" aria-label="Oracle routing tree">
1629
1641
  <style>
1630
- .route-tree line { stroke-dasharray: 20 8; animation: flow-down 3s linear infinite; opacity:1; }
1642
+ .route-tree text { fill:#f4f8fc; font-size:15px; font-weight:600; letter-spacing:.02em; paint-order:stroke; stroke:#080d15; stroke-width:2px; stroke-linejoin:round; }
1643
+ .route-tree rect { fill:#111d2b; stroke:rgba(124,196,255,.72); }
1644
+ .route-tree line { stroke:#8bd2ff; stroke-dasharray:20 8; animation:flow-down 3s linear infinite; opacity:.92; }
1631
1645
  @keyframes flow-down { to { stroke-dashoffset: -56; } }
1632
1646
  </style>
1633
1647
  <defs>
@@ -1724,12 +1738,16 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1724
1738
  <h4>Custom alerts + shadow trading</h4>
1725
1739
  <p>Follow favorite chains, wallets, funds and deployer addresses, then get notified when one opens, rotates or exits. Run the playbook in shadow mode against live prices before you arm it for live execution.</p>
1726
1740
  </article>
1741
+ <article class="strategy-card">
1742
+ <div class="mode">shadow · simulate · execute</div>
1743
+ <h4>Paper-trade until you go live</h4>
1744
+ <p>Simulate every strategy against live venue data without committing capital. Track P&L, slippage, and fill quality in shadow mode — then arm it with one flag when you're ready. No gas, no exposure, no regret trades.</p>
1745
+ </article>
1727
1746
 
1728
1747
  </div>
1729
1748
  <div class="strategy-posture"><b>Public posture:</b> research, simulation and unsigned preparation. MEV and flash-loan broadcast stays off; supported staking, LP, yield and farming actions require the user wallet to sign. Farm discovery reads live third-party yield data. Custom alerts and shadow loops notify or simulate first; live execution still requires arming and a user signature.</div>
1730
1749
 
1731
1750
  </div>
1732
- </div>
1733
1751
 
1734
1752
  <section class="section" id="chains">
1735
1753
  <p class="section-label rv">Chains</p>
@@ -1752,8 +1770,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1752
1770
  <p class="section-label rv">Oracle CLI</p>
1753
1771
  <h2 class="section-title rv">One surface. <em>Every chain.</em></h2>
1754
1772
  <div class="cli-install rv">
1755
- <div class="cli-install-cmd"><code>npm i -g @oracle-agent/oracle</code> <span class="cli-install-hint">public npm package · Node 20.19+</span></div>
1756
- <p class="cli-install-gate"><b>Locals Only</b> holders get 0% Oracle integrator fees. Everyone gets the same public CLI, desktop, source, and prepare-only product access.</p>
1773
+ <div class="cli-install-cmd"><code>oracle</code> <span class="cli-install-hint">npm install -g @oracle-agent/oracle</span></div>
1757
1774
  </div>
1758
1775
  <p class="section-lede rv">The real Oracle shell, isolated from desktop chrome. No accounts, no servers. The CLI runs on your machine and reads straight from public RPCs.</p>
1759
1776
  <p class="section-lede rv">Pin the active surface with <code style="color:var(--blue2)">/chain hyperliquid</code>, switch models, ask naturally. Oracle reads, prices, and prepares — you sign.</p>
@@ -1771,7 +1788,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1771
1788
  <span>multichain routing</span>
1772
1789
  <span>self-custody</span>
1773
1790
  </div>
1774
- <h2 class="section-title app-shot-title">Oracle Desktop App</h2>
1791
+ <h2 class="section-title app-shot-title">Oracle Desktop App <sup style="font-size:14px;color:var(--blue);font-weight:400">beta</sup></h2>
1775
1792
  <figure class="app-shot">
1776
1793
  <img src="assets/desktop-app.jpg" width="1736" height="959" loading="lazy" decoding="async" alt="Oracle desktop app showing the specialist mesh, with Portfolio, Approvals, Prepare, CLI, Farming Methods, Agent Connect, Receipts, Campaigns and Routes panes.">
1777
1794
  <figcaption>Portfolio, approvals, prepare, farming, receipts and routes in one pane.</figcaption>
@@ -1781,19 +1798,34 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1781
1798
  </div>
1782
1799
  </section>
1783
1800
 
1784
- <section class="section" id="custody" style="padding-top:clamp(48px,8vh,80px)">
1785
- <div class="strip-inner rv" style="border:1px solid var(--line);border-radius:16px;padding:22px 24px;display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;justify-content:space-between;background:linear-gradient(180deg, rgba(124,196,255,.05), transparent)">
1786
- <div class="strip-left">
1787
- <strong style="font-family:var(--display);font-weight:400;font-size:26px;display:block;margin-bottom:6px">You keep custody.</strong>
1788
- <span style="font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)">oracle never holds your keys</span>
1789
- </div>
1790
- <div class="strip-right" style="display:flex;flex-wrap:wrap;gap:10px">
1791
- <span class="pill on" style="font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;border:1px solid rgba(124,196,255,.35);border-radius:999px;padding:9px 12px;color:var(--blue)">Multi-wallet</span>
1792
- <span class="pill on" style="font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;border:1px solid rgba(124,196,255,.35);border-radius:999px;padding:9px 12px;color:var(--blue)">Per-wallet limits</span>
1793
- <span class="pill" style="font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:9px 12px;color:var(--cool)">Revoke anytime</span>
1794
- </div>
1795
- </div>
1796
- </section>
1801
+ <section class="section" id="fees">
1802
+ <p class="section-label rv">Fees</p>
1803
+ <h2 class="section-title rv">5 bps. <em>Holders zero.</em></h2>
1804
+ <p class="section-lede rv">Oracle charges 5 basis points (0.05%) on swaps it routes. Eligible Hyperliquid orders can separately include a 1–2 bps builder fee after wallet approval. Both are shown before you sign.</p>
1805
+ <div class="moat-grid rv" style="margin-top:28px">
1806
+ <article class="moat-card">
1807
+ <div class="n">swap fee</div>
1808
+ <h3>5 bps per routed swap</h3>
1809
+ <p>Calculated on the output amount, deducted from the route before the quote reaches you. Oracle never touches your input — it prices the net you receive after the fee.</p>
1810
+ </article>
1811
+ <article class="moat-card">
1812
+ <div class="n">locals only</div>
1813
+ <h3>0% for NFT holders</h3>
1814
+ <p>Hold a Locals Only NFT in the wallet Oracle reads and eligible routed swaps and Hyperliquid builder orders carry zero Oracle fees. No claim, dashboard, or manual toggle.</p>
1815
+ </article>
1816
+ <article class="moat-card">
1817
+ <div class="n">operator seat</div>
1818
+ <h3>Run your own instance</h3>
1819
+ <p>The public package is free to install. Every read, route, and prepare runs on your machine. The routing fee only applies when your agent uses Oracle's aggregation.</p>
1820
+ </article>
1821
+ <article class="moat-card">
1822
+ <div class="n">builder codes</div>
1823
+ <h3>Hyperliquid builder fees</h3>
1824
+ <p>Core perps use 2 bps. HIP-3 and HIP-4 use 1 bps. Spot is set to 1 bps but remains inactive until Oracle ships spot-order preparation. Your wallet approves a 2 bps maximum before Oracle can include any builder fee. This is separate from the 5 bps routed-swap fee.</p>
1825
+ </article>
1826
+
1827
+ </div>
1828
+ </section>
1797
1829
 
1798
1830
  <div class="mega-oracle rv" aria-hidden="true">oracle</div>
1799
1831
  <footer>
@@ -1813,16 +1845,38 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1813
1845
  </div>
1814
1846
  </footer>
1815
1847
 
1816
- <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
1817
- <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js"></script>
1818
- <script src="https://cdn.jsdelivr.net/npm/lenis@1.3.11/dist/lenis.min.js"></script>
1819
1848
  <script>
1849
+ // Load optional animation libraries in background — page works without them
1850
+ (function loadExtras(){
1851
+ var s1 = document.createElement("script");
1852
+ s1.src = "https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js";
1853
+ var s2 = document.createElement("script");
1854
+ s2.src = "https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js";
1855
+ var s3 = document.createElement("script");
1856
+ s3.src = "https://cdn.jsdelivr.net/npm/lenis@1.3.11/dist/lenis.min.js";
1857
+ var loaded = 0;
1858
+ function onLoad(){
1859
+ loaded++;
1860
+ if (loaded === 3) {
1861
+ window.__oracleMotionReady = true;
1862
+ window.dispatchEvent(new Event("oracle:motion-ready"));
1863
+ }
1864
+ }
1865
+ s1.onload = onLoad; s1.onerror = function(){ loaded++; };
1866
+ s2.onload = onLoad; s2.onerror = function(){ loaded++; };
1867
+ s3.onload = onLoad; s3.onerror = function(){ loaded++; };
1868
+ document.head.appendChild(s1);
1869
+ document.head.appendChild(s2);
1870
+ document.head.appendChild(s3);
1871
+ })();
1872
+
1820
1873
  (function () {
1821
1874
  "use strict";
1822
1875
  document.documentElement.classList.add("js");
1823
1876
 
1824
1877
  var ICON = "https://icons.llamao.fi/icons/";
1825
1878
  var CHAINS = [
1879
+ { name: "Hyperliquid", id: "999", logo: "chains/rsz_hyperliquid", note: "hyperliquid agent", badge: "route" },
1826
1880
  { name: "Ethereum", id: "1", logo: "chains/rsz_ethereum", note: "evm / bridge agent", badge: "route" },
1827
1881
  { name: "Base", id: "8453", logo: "chains/rsz_base", note: "evm / bridge agent", badge: "route" },
1828
1882
  { name: "Arbitrum", id: "42161", logo: "chains/rsz_arbitrum", note: "evm / bridge agent", badge: "route" },
@@ -1831,7 +1885,6 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1831
1885
  { name: "Avalanche", id: "43114", logo: "chains/rsz_avalanche", note: "evm / bridge agent", badge: "route" },
1832
1886
  { name: "Polygon", id: "137", logo: "chains/rsz_polygon", note: "evm / bridge agent", badge: "route" },
1833
1887
  { name: "Robinhood", id: "4663", logo: "chains/rsz_robinhood", note: "robinhood agent", badge: "route" },
1834
- { name: "Hyperliquid", id: "999", logo: "chains/rsz_hyperliquid", note: "hyperliquid agent", badge: "route" },
1835
1888
  { name: "Abstract", id: "2741", logo: "chains/rsz_abstract", note: "open / add agent", badge: "route" },
1836
1889
  { name: "Stable", id: "988", logo: "chains/rsz_stable", note: "stable agent", badge: "route" },
1837
1890
  { name: "Solana", id: "SOL", logo: "chains/rsz_solana", note: "solana agent", badge: "route" },
@@ -1874,9 +1927,14 @@ var BRAND = "brand/";
1874
1927
  { n: "Derive V2", img: "derive", cap: "read", u: "https://app.derive.xyz" },
1875
1928
  { n: "PancakeSwap AMM", img: "pancakeswap", cap: "read + quote", u: "https://pancakeswap.finance/" },
1876
1929
  { n: "Lista Lending", img: "lista", cap: "read + quote", u: "https://lista.org/lending" },
1930
+ { n: "Silhouette", cap: "read", u: "https://silhouette.exchange/" },
1931
+ { n: "Nest Exchange", cap: "read", u: "https://nestdex.org/" },
1877
1932
  { n: "Lista CDP", img: "lista", cap: "read", u: "https://lista.org/" },
1878
1933
  { n: "Benqi Lending", img: "benqi", cap: "read", u: "https://benqi.fi" },
1879
1934
  { n: "Pharaoh V3", img: "pharaoh", cap: "read + quote", u: "https://www.phar.gg/" },
1935
+ { n: "Trade XYZ", cap: "read", u: "https://trade.xyz/" },
1936
+ { n: "Markets by Kinetiq", cap: "read", u: "https://markets.xyz/" },
1937
+ { n: "Outcome", cap: "read", u: "https://outcome.xyz/" },
1880
1938
  { n: "Polymarket", wm: "polymarket.png", cap: "read", u: "https://polymarket.com/" },
1881
1939
  { n: "XSY", img: "xsy", cap: "read", u: "https://xsy.fi" },
1882
1940
  { n: "Balancer V2", wm: "balancer.svg", cap: "read + quote", u: "https://balancer.fi/" },
@@ -1902,7 +1960,9 @@ var BRAND = "brand/";
1902
1960
  { n: "Relay", wm: "relay.svg", cap: "route source", u: "https://relay.link/" },
1903
1961
  { n: "Odos", wm: "odos.svg", cap: "read + route source", u: "https://app.odos.xyz" },
1904
1962
  { n: "Jupiter", wm: "jupiter.svg", cap: "solana route source", u: "https://jup.ag/" },
1905
- { n: "Stargate", wm: "stargate.svg", cap: "read + bridge route", u: "https://stargate.finance/" }
1963
+ { n: "Stargate", wm: "stargate.svg", cap: "read + bridge route", u: "https://stargate.finance/" },
1964
+ { n: "Motion", cap: "read", u: "https://opensea.io/token/hyperevm/0xb94bbecf4050383a9f1ecd71ac8114ac930d2446" },
1965
+ { n: "LiquidLaunch", cap: "read", u: "https://liquidlaunch.app/" },
1906
1966
  ];
1907
1967
  var PROTOS_B = [
1908
1968
  { n: "Uniswap V3 LP", img: "uniswap", cap: "preview + mint/collect prepare", u: "https://app.uniswap.org/" },
@@ -1998,6 +2058,11 @@ var PROTOS_B = [
1998
2058
  function protocolName(name) {
1999
2059
  var label = name.replace(/\s+(?:DEX\s+)?V\d+(?:\s+LP)?\b/gi, "").trim();
2000
2060
  var aliases = [
2061
+ [/^Outcome\b/i, "Outcome"],
2062
+ [/^Markets by Kinetiq\b/i, "Markets by Kinetiq"],
2063
+ [/^Trade XYZ\b/i, "Trade XYZ"],
2064
+ [/^Nest Exchange\b/i, "Nest Exchange"],
2065
+ [/^Silhouette\b/i, "Silhouette"],
2001
2066
  [/^Aerodrome\b/i, "Aerodrome"],
2002
2067
  [/^Pancake(?:Swap)?\b/i, "PancakeSwap"],
2003
2068
  [/^LFJ\b/i, "LFJ"],
@@ -2023,6 +2088,9 @@ var PROTOS_B = [
2023
2088
  [/^Sky\b/i, "Sky"],
2024
2089
  [/^Binance\b/i, "Binance"],
2025
2090
  [/^Avant\b/i, "Avant"],
2091
+ [/^Motion\b/i, "Motion"],
2092
+ [/^LiquidLaunch\b/i, "LiquidLaunch"],
2093
+ [/^Felix\b/i, "Felix"],
2026
2094
  [/^Aster\b/i, "Aster"],
2027
2095
  [/^Lighter\b/i, "Lighter"],
2028
2096
  [/^stHYPE \+ wstHYPE$/i, "Valantis"]
@@ -2142,10 +2210,19 @@ renderProtocolAtlas();
2142
2210
  marqueeResizeTimer = setTimeout(syncMarqueeVelocity, 120);
2143
2211
  });
2144
2212
 
2145
- var loader = document.getElementById("loader");
2146
- window.addEventListener("load", function () {
2147
- setTimeout(function () { loader.classList.add("out"); }, 650);
2148
- });
2213
+ // Dismiss loader on DOM ready — doesn't wait for external scripts
2214
+ if (document.readyState === "loading") {
2215
+ document.addEventListener("DOMContentLoaded", function () {
2216
+ setTimeout(function () { document.getElementById("loader").classList.add("out"); }, 650);
2217
+ });
2218
+ } else {
2219
+ setTimeout(function () { document.getElementById("loader").classList.add("out"); }, 50);
2220
+ }
2221
+ // Belt-and-suspenders: if all else fails, dismiss after 4s
2222
+ setTimeout(function () {
2223
+ var l = document.getElementById("loader");
2224
+ if (l && !l.classList.contains("out")) l.classList.add("out");
2225
+ }, 4000);
2149
2226
 
2150
2227
  var reduced = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
2151
2228
  var coarse = window.matchMedia("(pointer: coarse)").matches;
@@ -2262,7 +2339,9 @@ var activeLenis = null;
2262
2339
  }
2263
2340
  document.documentElement.classList.add("premium-motion");
2264
2341
  }
2265
- initPremiumMotion();
2342
+ window.addEventListener("oracle:motion-ready", initPremiumMotion);
2343
+ if (window.__oracleMotionReady) initPremiumMotion();
2344
+
2266
2345
 
2267
2346
  function scrollToHash(hash) {
2268
2347
  var target = document.getElementById(hash.slice(1));
package/CONTRIBUTING.md DELETED
@@ -1,99 +0,0 @@
1
- # Contributing to Oracle
2
-
3
- Thanks for looking. Oracle is a control plane for money movement, so the review
4
- bar is about safety and honesty more than style.
5
-
6
- ## Before you start
7
-
8
- Run the suite:
9
-
10
- ```bash
11
- npm install
12
- npm test
13
- ```
14
-
15
- `test-baseline.json` records the current suite count and `npm run test:count`
16
- prevents silent test loss. A failure on a clean checkout is a bug; report it
17
- with the exact command output.
18
-
19
- ## The one rule that matters
20
-
21
- **The public plane may never reach a private key or a house signer.**
22
-
23
- Oracle ships the data plane, the policy plane, and the control plane. It does not
24
- ship the executor. A PR that imports signer or keystore code into public modules
25
- will fail `test/custody-boundary.test.mjs`, and the fix is not to edit the
26
- forbidden list.
27
-
28
- If your feature seems to need a key, restructure it: build an unsigned
29
- transaction or a typed-data intent and hand it back to the caller to sign.
30
-
31
- ## What we want
32
-
33
- - **Real bugs, fixed at the class level.** Reproduce it, point at the line, fix
34
- every sibling call path — not just the one that was reported.
35
- - **New chains and providers.** This is the most useful contribution. See below.
36
- - **Honest capability tiers.** If a provider can only quote, mark it
37
- `quote-only`. Do not mark it `prepare` because a prepare function exists but
38
- was never validated against a live route.
39
- - **Tests that assert invariants**, not snapshots. `assert` that a minimum output
40
- is enforced; don't freeze today's provider list into an equality check.
41
- - **Guards recomputed before signing.** A quote-time check that isn't re-verified
42
- at broadcast is decoration.
43
-
44
- ## What gets rejected
45
-
46
- - A signer, private key, or house-custody path in the public tree.
47
- - A destination allowlist that defaults to permissive, or an empty allowlist read
48
- as "allow all."
49
- - Slippage widened past the 100 bps cap to make a trade go through. Block,
50
- requote, or split instead.
51
- - A claim of execution support with no live prepare/simulate evidence.
52
- - Secrets in code, tests, fixtures, or docs — including a real wallet address as
53
- a default `from` for quotes. Use `src/data/quote-placeholder.mjs`.
54
- - "It worked when I ran it" with no test.
55
-
56
- ## Adding a provider
57
-
58
- 1. Create `src/data/providers/<name>.mjs`.
59
- 2. Export a `health()` plus the ops you actually implement.
60
- 3. Register it in `src/data/catalog.mjs` with truthful `chainIds`, `auth`, `ops`,
61
- and `execution` tier.
62
- 4. Add a test with a mocked transport. Do not require a live network for CI.
63
- 5. If it needs a key, the health check must report
64
- `{ ok: false, configured: false }` rather than throwing.
65
-
66
- ## Adding a chain
67
-
68
- 1. Add an entry to `CHAINS` in `src/chains.mjs` with its `rpcEnv` names.
69
- 2. Verify every router/venue address on-chain (`eth_getCode` must return real
70
- bytecode) before adding it to `src/venues.mjs`.
71
- 3. Comment each venue addition with how you verified it and when.
72
- 4. An unverified chain stays fail-closed. That is a safe state, not a gap.
73
-
74
- Never allowlist a router you found only in a blog post or a model's answer. The
75
- destination allowlist is the highest-leverage control in the system.
76
-
77
- ## Commits and PRs
78
-
79
- Conventional prefixes: `fix:`, `feat:`, `refactor:`, `docs:`, `test:`, `chore:`.
80
-
81
- In the PR body, state:
82
-
83
- - what broke or what's new
84
- - how you verified it (paste the real command output)
85
- - whether anything touches the custody boundary
86
-
87
- Small, reviewable PRs get merged. A 3000-line PR mixing a refactor with a policy
88
- change will sit.
89
-
90
- ## Style
91
-
92
- - ES modules, Node 20+, no build step.
93
- - No new runtime dependency without a reason in the PR description.
94
- - Comments explain *why*, not *what*. If a line encodes a hard-won fact — a
95
- provider's unit quirk, a revert cause — say so, and say how it was learned.
96
-
97
- ## License
98
-
99
- Contributions are accepted under the repository's then-current outbound license in [LICENSE](LICENSE). Current source is BUSL-1.1; npm releases `0.1.0` through `0.11.0` remain Apache-2.0.