@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.
- package/LICENSE +115 -201
- package/README.md +13 -516
- package/bin/oracle.mjs +19 -27
- package/package.json +15 -98
- package/CONTRIBUTING.md +0 -98
- package/SECURITY.md +0 -89
- package/SETUP.md +0 -381
- package/artifacts/inscription/oracle-was-here-preview.png +0 -0
- package/artifacts/inscription/oracle-was-here.svg +0 -1
- package/artifacts/specialist-packs/oracle-full-crypto.json +0 -295
- package/bin/desk-server.mjs +0 -440
- package/bin/oracle-data-mcp.mjs +0 -1019
- package/bin/oracle-init.mjs +0 -496
- package/bin/oracle-public-server.mjs +0 -36
- package/bin/oracle-route.mjs +0 -254
- package/bin/oracle-scan.mjs +0 -192
- package/bin/oracle-upgrade.mjs +0 -42
- package/docs/adding-a-chain.md +0 -229
- package/docs/architecture.md +0 -138
- package/docs/cli.md +0 -47
- package/docs/connectors.md +0 -13
- package/docs/oracle-pack-standard.md +0 -29
- package/docs/profiles.md +0 -151
- package/docs/public-surface.md +0 -133
- package/examples/add-a-chain.mjs +0 -65
- package/examples/oracle-pack-template.mjs +0 -38
- package/examples/research-a-token.mjs +0 -70
- package/plugins/oracle-owner-gate/__init__.py +0 -227
- package/plugins/oracle-owner-gate/plugin.yaml +0 -9
- package/profiles/_template/SOUL.md +0 -54
- package/profiles/_template/profile.json +0 -22
- package/profiles/bitcoin-agent/SOUL.md +0 -31
- package/profiles/bitcoin-agent/profile.json +0 -32
- package/profiles/hyperliquid-agent/SOUL.md +0 -34
- package/profiles/hyperliquid-agent/profile.json +0 -37
- package/profiles/oracle/SOUL.md +0 -107
- package/profiles/oracle/profile.json +0 -39
- package/profiles/polymarket-agent/SOUL.md +0 -35
- package/profiles/polymarket-agent/profile.json +0 -34
- package/profiles/profile.schema.json +0 -90
- package/profiles/protocol-builder/SOUL.md +0 -57
- package/profiles/protocol-builder/profile.json +0 -39
- package/profiles/robinhood-agent/SOUL.md +0 -53
- package/profiles/robinhood-agent/profile.json +0 -40
- package/profiles/solana-agent/SOUL.md +0 -37
- package/profiles/solana-agent/profile.json +0 -37
- package/profiles/stable-agent/SOUL.md +0 -43
- package/profiles/stable-agent/profile.json +0 -37
- package/protocols/templates/safe-erc20/SECURITY.md +0 -16
- package/protocols/templates/safe-erc20/foundry.toml +0 -12
- package/protocols/templates/safe-erc20/remappings.txt +0 -2
- package/protocols/templates/safe-erc20/src/SafeERC20.sol +0 -53
- package/protocols/templates/safe-erc20/test/SafeERC20.t.sol +0 -72
- package/public/agent-connect/app.js +0 -84
- package/public/agent-connect/index.html +0 -83
- package/public/agent-connect/styles.css +0 -70
- package/public/index.html +0 -12
- package/public/oracle-console/app.js +0 -272
- package/public/oracle-console/bitcoin-wallets.js +0 -206
- package/public/oracle-console/index.html +0 -91
- package/public/oracle-console/styles.css +0 -239
- package/public/oracle-splash/assets/cli-chain-hyperliquid.jpg +0 -0
- package/public/oracle-splash/assets/hero/orb.avif +0 -0
- package/public/oracle-splash/assets/hero/orb.webm +0 -0
- package/public/oracle-splash/assets/llms/claude.svg +0 -1
- package/public/oracle-splash/assets/llms/codex-icon.svg +0 -1
- package/public/oracle-splash/assets/llms/codex.svg +0 -1
- package/public/oracle-splash/assets/llms/cursor-icon.svg +0 -12
- package/public/oracle-splash/assets/llms/cursor.svg +0 -17
- package/public/oracle-splash/assets/llms/deepseek.svg +0 -1
- package/public/oracle-splash/assets/llms/gemini-icon.svg +0 -1
- package/public/oracle-splash/assets/llms/gemini.svg +0 -1
- package/public/oracle-splash/assets/llms/grok.svg +0 -8
- package/public/oracle-splash/assets/llms/hermes.png +0 -0
- package/public/oracle-splash/assets/llms/kimi-icon.svg +0 -1
- package/public/oracle-splash/assets/llms/kimi.svg +0 -1
- package/public/oracle-splash/assets/llms/manus.svg +0 -18
- package/public/oracle-splash/assets/llms/openclaw.svg +0 -22
- package/public/oracle-splash/assets/llms/perplexity.svg +0 -1
- package/public/oracle-splash/assets/llms/qwen.svg +0 -1
- package/public/oracle-splash/assets/llms/windsurf.svg +0 -1
- package/public/oracle-splash/assets/protocols/abcdex.png +0 -0
- package/public/oracle-splash/assets/protocols/across.png +0 -0
- package/public/oracle-splash/assets/protocols/aerodrome.png +0 -0
- package/public/oracle-splash/assets/protocols/balancer.png +0 -0
- package/public/oracle-splash/assets/protocols/cowswap.png +0 -0
- package/public/oracle-splash/assets/protocols/curve.png +0 -0
- package/public/oracle-splash/assets/protocols/dreamcash.png +0 -0
- package/public/oracle-splash/assets/protocols/felix.png +0 -0
- package/public/oracle-splash/assets/protocols/gmx.png +0 -0
- package/public/oracle-splash/assets/protocols/hyena.png +0 -0
- package/public/oracle-splash/assets/protocols/hyperbeat.png +0 -0
- package/public/oracle-splash/assets/protocols/hyperliquid.png +0 -0
- package/public/oracle-splash/assets/protocols/hyperswap.png +0 -0
- package/public/oracle-splash/assets/protocols/jupiter.png +0 -0
- package/public/oracle-splash/assets/protocols/kinetiq.png +0 -0
- package/public/oracle-splash/assets/protocols/lfj.png +0 -0
- package/public/oracle-splash/assets/protocols/lifi.png +0 -0
- package/public/oracle-splash/assets/protocols/magic-eden.png +0 -0
- package/public/oracle-splash/assets/protocols/morpho.png +0 -0
- package/public/oracle-splash/assets/protocols/odos.png +0 -0
- package/public/oracle-splash/assets/protocols/oneinch.png +0 -0
- package/public/oracle-splash/assets/protocols/opensea.png +0 -0
- package/public/oracle-splash/assets/protocols/pancakeswap.png +0 -0
- package/public/oracle-splash/assets/protocols/paragon.png +0 -0
- package/public/oracle-splash/assets/protocols/paraswap.png +0 -0
- package/public/oracle-splash/assets/protocols/pendle.png +0 -0
- package/public/oracle-splash/assets/protocols/polymarket.png +0 -0
- package/public/oracle-splash/assets/protocols/quickswap.png +0 -0
- package/public/oracle-splash/assets/protocols/relay.png +0 -0
- package/public/oracle-splash/assets/protocols/stargate.png +0 -0
- package/public/oracle-splash/assets/protocols/tradexyz.png +0 -0
- package/public/oracle-splash/assets/protocols/uniswap.png +0 -0
- package/public/oracle-splash/assets/protocols/velodrome.png +0 -0
- package/public/oracle-splash/assets/protocols/ventuals.png +0 -0
- package/public/oracle-splash/assets/wordmarks/across-icon.webp +0 -0
- package/public/oracle-splash/assets/wordmarks/across.svg +0 -4
- package/public/oracle-splash/assets/wordmarks/aerodrome.svg +0 -23
- package/public/oracle-splash/assets/wordmarks/balancer.svg +0 -3
- package/public/oracle-splash/assets/wordmarks/cowswap.svg +0 -1
- package/public/oracle-splash/assets/wordmarks/curve.png +0 -0
- package/public/oracle-splash/assets/wordmarks/gmx.svg +0 -13
- package/public/oracle-splash/assets/wordmarks/hop-icon.webp +0 -0
- package/public/oracle-splash/assets/wordmarks/hyena.svg +0 -7
- package/public/oracle-splash/assets/wordmarks/hyperliquid.svg +0 -21
- package/public/oracle-splash/assets/wordmarks/hyperswap.svg +0 -13
- package/public/oracle-splash/assets/wordmarks/jupiter.svg +0 -35
- package/public/oracle-splash/assets/wordmarks/kinetiq.svg +0 -1
- package/public/oracle-splash/assets/wordmarks/lfj.webp +0 -0
- package/public/oracle-splash/assets/wordmarks/lifi.png +0 -0
- package/public/oracle-splash/assets/wordmarks/magic-eden.svg +0 -1
- package/public/oracle-splash/assets/wordmarks/markets.svg +0 -1
- package/public/oracle-splash/assets/wordmarks/morpho.svg +0 -1
- package/public/oracle-splash/assets/wordmarks/odos.svg +0 -3
- package/public/oracle-splash/assets/wordmarks/oneinch-icon.webp +0 -0
- package/public/oracle-splash/assets/wordmarks/oneinch.svg +0 -6
- package/public/oracle-splash/assets/wordmarks/opensea-icon.svg +0 -17
- package/public/oracle-splash/assets/wordmarks/opensea.svg +0 -1
- package/public/oracle-splash/assets/wordmarks/outcome.svg +0 -16
- package/public/oracle-splash/assets/wordmarks/pancakeswap.svg +0 -18
- package/public/oracle-splash/assets/wordmarks/paragon.svg +0 -9
- package/public/oracle-splash/assets/wordmarks/paraswap.svg +0 -16
- package/public/oracle-splash/assets/wordmarks/pendle.png +0 -0
- package/public/oracle-splash/assets/wordmarks/polymarket.png +0 -0
- package/public/oracle-splash/assets/wordmarks/quickswap.png +0 -0
- package/public/oracle-splash/assets/wordmarks/relay.svg +0 -8
- package/public/oracle-splash/assets/wordmarks/satflow-icon.png +0 -0
- package/public/oracle-splash/assets/wordmarks/stargate-icon.webp +0 -0
- package/public/oracle-splash/assets/wordmarks/stargate.svg +0 -15
- package/public/oracle-splash/assets/wordmarks/uniswap.svg +0 -18
- package/public/oracle-splash/assets/wordmarks/velodrome.svg +0 -84
- package/public/oracle-splash/assets/wordmarks/xyz.svg +0 -12
- package/public/oracle-splash/assets/wordmarks/zerox-icon.webp +0 -0
- package/public/oracle-splash/brand/aave.webp +0 -0
- package/public/oracle-splash/brand/aavev2.webp +0 -0
- package/public/oracle-splash/brand/aborean.webp +0 -0
- package/public/oracle-splash/brand/across.webp +0 -0
- package/public/oracle-splash/brand/aerodrome.webp +0 -0
- package/public/oracle-splash/brand/afi.webp +0 -0
- package/public/oracle-splash/brand/arcus.webp +0 -0
- package/public/oracle-splash/brand/aster.webp +0 -0
- package/public/oracle-splash/brand/avant.webp +0 -0
- package/public/oracle-splash/brand/balancer.webp +0 -0
- package/public/oracle-splash/brand/beefy.webp +0 -0
- package/public/oracle-splash/brand/benqi.webp +0 -0
- package/public/oracle-splash/brand/bestinslot.ico +0 -0
- package/public/oracle-splash/brand/bitfi.webp +0 -0
- package/public/oracle-splash/brand/bonkswap.webp +0 -0
- package/public/oracle-splash/brand/bouncebit.webp +0 -0
- package/public/oracle-splash/brand/camelot.webp +0 -0
- package/public/oracle-splash/brand/compound.webp +0 -0
- package/public/oracle-splash/brand/concrete.webp +0 -0
- package/public/oracle-splash/brand/cow.webp +0 -0
- package/public/oracle-splash/brand/curve.webp +0 -0
- package/public/oracle-splash/brand/derive.webp +0 -0
- package/public/oracle-splash/brand/dolomite.webp +0 -0
- package/public/oracle-splash/brand/eigenlayer.webp +0 -0
- package/public/oracle-splash/brand/ekubo.webp +0 -0
- package/public/oracle-splash/brand/ethena.webp +0 -0
- package/public/oracle-splash/brand/etherfi.webp +0 -0
- package/public/oracle-splash/brand/etherfiborrow.webp +0 -0
- package/public/oracle-splash/brand/felix.webp +0 -0
- package/public/oracle-splash/brand/fluid.webp +0 -0
- package/public/oracle-splash/brand/fluxbeam.webp +0 -0
- package/public/oracle-splash/brand/folks.webp +0 -0
- package/public/oracle-splash/brand/fortyacres.webp +0 -0
- package/public/oracle-splash/brand/gainsnetwork.webp +0 -0
- package/public/oracle-splash/brand/gassss.webp +0 -0
- package/public/oracle-splash/brand/gmx.webp +0 -0
- package/public/oracle-splash/brand/harmonix.webp +0 -0
- package/public/oracle-splash/brand/hlorderbook.webp +0 -0
- package/public/oracle-splash/brand/hlp.webp +0 -0
- package/public/oracle-splash/brand/hop.webp +0 -0
- package/public/oracle-splash/brand/hyperbeat.webp +0 -0
- package/public/oracle-splash/brand/hyperlend.webp +0 -0
- package/public/oracle-splash/brand/hyperliquid.webp +0 -0
- package/public/oracle-splash/brand/hyperliquidhpl.webp +0 -0
- package/public/oracle-splash/brand/hyperliquidspot.webp +0 -0
- package/public/oracle-splash/brand/hyperswap.webp +0 -0
- package/public/oracle-splash/brand/hypha.webp +0 -0
- package/public/oracle-splash/brand/joedex.webp +0 -0
- package/public/oracle-splash/brand/jupiter.webp +0 -0
- package/public/oracle-splash/brand/kelp.webp +0 -0
- package/public/oracle-splash/brand/kinetiq.webp +0 -0
- package/public/oracle-splash/brand/kmhype.webp +0 -0
- package/public/oracle-splash/brand/kona.webp +0 -0
- package/public/oracle-splash/brand/konalend.webp +0 -0
- package/public/oracle-splash/brand/lfj.webp +0 -0
- package/public/oracle-splash/brand/lido.webp +0 -0
- package/public/oracle-splash/brand/lifi.webp +0 -0
- package/public/oracle-splash/brand/lighter.webp +0 -0
- package/public/oracle-splash/brand/lista.webp +0 -0
- package/public/oracle-splash/brand/loopedhype.webp +0 -0
- package/public/oracle-splash/brand/lorenzo.webp +0 -0
- package/public/oracle-splash/brand/magic-eden.webp +0 -0
- package/public/oracle-splash/brand/magiceden.webp +0 -0
- package/public/oracle-splash/brand/mempool.png +0 -0
- package/public/oracle-splash/brand/meteora.webp +0 -0
- package/public/oracle-splash/brand/morpho.webp +0 -0
- package/public/oracle-splash/brand/myriad.webp +0 -0
- package/public/oracle-splash/brand/noxa.webp +0 -0
- package/public/oracle-splash/brand/odos.webp +0 -0
- package/public/oracle-splash/brand/oneinch.webp +0 -0
- package/public/oracle-splash/brand/openbook.webp +0 -0
- package/public/oracle-splash/brand/opensea.webp +0 -0
- package/public/oracle-splash/brand/orca.webp +0 -0
- package/public/oracle-splash/brand/ordinals.png +0 -0
- package/public/oracle-splash/brand/ostium.webp +0 -0
- package/public/oracle-splash/brand/pancakeswap.webp +0 -0
- package/public/oracle-splash/brand/pendle.webp +0 -0
- package/public/oracle-splash/brand/perena.webp +0 -0
- package/public/oracle-splash/brand/pharaoh.webp +0 -0
- package/public/oracle-splash/brand/phoenix.webp +0 -0
- package/public/oracle-splash/brand/polymarket.webp +0 -0
- package/public/oracle-splash/brand/polynomial.webp +0 -0
- package/public/oracle-splash/brand/projectx.webp +0 -0
- package/public/oracle-splash/brand/pumpfun.webp +0 -0
- package/public/oracle-splash/brand/quickswap.webp +0 -0
- package/public/oracle-splash/brand/rain.webp +0 -0
- package/public/oracle-splash/brand/raydium.webp +0 -0
- package/public/oracle-splash/brand/relay.webp +0 -0
- package/public/oracle-splash/brand/rocketpool.webp +0 -0
- package/public/oracle-splash/brand/saber.webp +0 -0
- package/public/oracle-splash/brand/sakuraswap.webp +0 -0
- package/public/oracle-splash/brand/sanctum.webp +0 -0
- package/public/oracle-splash/brand/satflow.png +0 -0
- package/public/oracle-splash/brand/sierra.webp +0 -0
- package/public/oracle-splash/brand/sky.webp +0 -0
- package/public/oracle-splash/brand/solv.webp +0 -0
- package/public/oracle-splash/brand/spark.webp +0 -0
- package/public/oracle-splash/brand/sparksavings.webp +0 -0
- package/public/oracle-splash/brand/sphere.webp +0 -0
- package/public/oracle-splash/brand/ssv.webp +0 -0
- package/public/oracle-splash/brand/stabble.webp +0 -0
- package/public/oracle-splash/brand/stableswap.webp +0 -0
- package/public/oracle-splash/brand/stakewise.webp +0 -0
- package/public/oracle-splash/brand/stargate.webp +0 -0
- package/public/oracle-splash/brand/sthype.webp +0 -0
- package/public/oracle-splash/brand/sushiswap.webp +0 -0
- package/public/oracle-splash/brand/unisat.png +0 -0
- package/public/oracle-splash/brand/uniswap.webp +0 -0
- package/public/oracle-splash/brand/uniswapv2.webp +0 -0
- package/public/oracle-splash/brand/uniswapv4.webp +0 -0
- package/public/oracle-splash/brand/unit.webp +0 -0
- package/public/oracle-splash/brand/velodrome.webp +0 -0
- package/public/oracle-splash/brand/velora.webp +0 -0
- package/public/oracle-splash/brand/venus.webp +0 -0
- package/public/oracle-splash/brand/wbeth.webp +0 -0
- package/public/oracle-splash/brand/xsy.webp +0 -0
- package/public/oracle-splash/brand/yieldyak.webp +0 -0
- package/public/oracle-splash/brand/zerobase.webp +0 -0
- package/public/oracle-splash/brand/zerox.webp +0 -0
- package/public/oracle-splash/favicon.ico +0 -0
- package/public/oracle-splash/favicon.svg +0 -6
- package/public/oracle-splash/index.html +0 -1558
- package/public/oracle-splash/mesh-graph.png +0 -0
- package/public/oracle-splash/mesh-graph.svg +0 -216
- package/scripts/adversarial-bench.mjs +0 -114
- package/scripts/build-inscription.py +0 -230
- package/scripts/check-doc-drift.mjs +0 -123
- package/scripts/check-test-count.mjs +0 -105
- package/scripts/e2e-hl-markets.mjs +0 -21
- package/scripts/e2e-hl-perps.mjs +0 -48
- package/scripts/e2e-hypercore-staking.mjs +0 -128
- package/scripts/e2e-solana-bitcoin.mjs +0 -183
- package/scripts/protocol-template-gate.mjs +0 -15
- package/scripts/public-api-scan.mjs +0 -23
- package/scripts/secret-scan.mjs +0 -181
- package/scripts/verify-v3-venues.mjs +0 -192
- package/skills/balance/SKILL.md +0 -176
- package/skills/oracle-action-semantics/SKILL.md +0 -40
- package/skills/oracle-best-execution/SKILL.md +0 -127
- package/skills/oracle-bitcoin/SKILL.md +0 -53
- package/skills/oracle-chain-graphs-telegram-cards/SKILL.md +0 -59
- package/skills/oracle-chat/SKILL.md +0 -61
- package/skills/oracle-chat/chain.SKILL.md +0 -31
- package/skills/oracle-chat/setup.SKILL.md +0 -37
- package/skills/oracle-circuit-breaker/SKILL.md +0 -51
- package/skills/oracle-contract-research/SKILL.md +0 -55
- package/skills/oracle-desk/SKILL.md +0 -58
- package/skills/oracle-dex-launch/SKILL.md +0 -38
- package/skills/oracle-grants/SKILL.md +0 -69
- package/skills/oracle-hypercore-staking/SKILL.md +0 -57
- package/skills/oracle-hyperliquid/SKILL.md +0 -56
- package/skills/oracle-meme-token-sniper/SKILL.md +0 -73
- package/skills/oracle-multichain-nft-launch/SKILL.md +0 -338
- package/skills/oracle-multichain-token-launch/SKILL.md +0 -300
- package/skills/oracle-nft-gacha-launch/SKILL.md +0 -48
- package/skills/oracle-nft-mint-gas-war/SKILL.md +0 -63
- package/skills/oracle-polymarket/SKILL.md +0 -60
- package/skills/oracle-protocol-builder/SKILL.md +0 -59
- package/skills/oracle-protocol-security/SKILL.md +0 -60
- package/skills/oracle-public-product/SKILL.md +0 -44
- package/skills/oracle-receipts/SKILL.md +0 -52
- package/skills/oracle-rfq-tokenized-assets/SKILL.md +0 -69
- package/skills/oracle-smart-wallet-scanner/SKILL.md +0 -49
- package/skills/oracle-solana/SKILL.md +0 -65
- package/skills/oracle-solana-nft/SKILL.md +0 -54
- package/skills/oracle-token-research/SKILL.md +0 -67
- package/skins/oracle.yaml +0 -56
- package/src/action-receipts.mjs +0 -265
- package/src/action-semantics.mjs +0 -62
- package/src/address-book.mjs +0 -208
- package/src/agent-auth.mjs +0 -206
- package/src/approval-guard.mjs +0 -282
- package/src/attestation-secret.mjs +0 -88
- package/src/audit-log.mjs +0 -196
- package/src/auth/oauth.mjs +0 -672
- package/src/auto-slippage.mjs +0 -378
- package/src/capability-posture.mjs +0 -125
- package/src/chains.mjs +0 -62
- package/src/cli/chain-catalog.mjs +0 -215
- package/src/cli/chain-state.mjs +0 -74
- package/src/cli/commands/auth.mjs +0 -193
- package/src/cli/commands/bootstrap.mjs +0 -87
- package/src/cli/commands/chain.mjs +0 -143
- package/src/cli/commands/chat.mjs +0 -434
- package/src/cli/commands/credential.mjs +0 -9
- package/src/cli/commands/data-mcp.mjs +0 -18
- package/src/cli/commands/data.mjs +0 -75
- package/src/cli/commands/doctor.mjs +0 -136
- package/src/cli/commands/help.mjs +0 -7
- package/src/cli/commands/init.mjs +0 -27
- package/src/cli/commands/mcp.mjs +0 -142
- package/src/cli/commands/model.mjs +0 -99
- package/src/cli/commands/prepare.mjs +0 -12
- package/src/cli/commands/public.mjs +0 -20
- package/src/cli/commands/route.mjs +0 -12
- package/src/cli/commands/runner.mjs +0 -9
- package/src/cli/commands/scan.mjs +0 -12
- package/src/cli/commands/setup.mjs +0 -275
- package/src/cli/commands/sign.mjs +0 -21
- package/src/cli/commands/signer.mjs +0 -9
- package/src/cli/commands/upgrade.mjs +0 -12
- package/src/cli/commands/vault.mjs +0 -9
- package/src/cli/commands/version.mjs +0 -22
- package/src/cli/first-run.mjs +0 -23
- package/src/cli/kernel.mjs +0 -239
- package/src/cli/mcp-targets/chatgpt.mjs +0 -51
- package/src/cli/mcp-targets/claude-code.mjs +0 -39
- package/src/cli/mcp-targets/claude-desktop.mjs +0 -24
- package/src/cli/mcp-targets/codex.mjs +0 -41
- package/src/cli/mcp-targets/shared.mjs +0 -61
- package/src/cli/messaging-platforms.mjs +0 -209
- package/src/cli/model-config.mjs +0 -70
- package/src/cli/operator-dispatch.mjs +0 -258
- package/src/cli/oracle-harness.py +0 -415
- package/src/cli/paths.mjs +0 -83
- package/src/cli/runtime.mjs +0 -351
- package/src/cli/setup-state.mjs +0 -168
- package/src/cli/spawn-child.mjs +0 -43
- package/src/data/catalog.mjs +0 -585
- package/src/data/desk-data.mjs +0 -695
- package/src/data/http.mjs +0 -253
- package/src/data/provider-endpoint.mjs +0 -94
- package/src/data/providers/aerodrome.mjs +0 -245
- package/src/data/providers/balancer.mjs +0 -209
- package/src/data/providers/bitcoin-esplora.mjs +0 -216
- package/src/data/providers/bitcoin-meta.mjs +0 -378
- package/src/data/providers/blockscout.mjs +0 -14
- package/src/data/providers/bridges.mjs +0 -242
- package/src/data/providers/cowswap.mjs +0 -415
- package/src/data/providers/curve.mjs +0 -201
- package/src/data/providers/defillama.mjs +0 -88
- package/src/data/providers/dexscreener.mjs +0 -43
- package/src/data/providers/evm-rpc.mjs +0 -225
- package/src/data/providers/geckoterminal.mjs +0 -34
- package/src/data/providers/gmx.mjs +0 -496
- package/src/data/providers/hl-assets.mjs +0 -165
- package/src/data/providers/hl-info.mjs +0 -108
- package/src/data/providers/hl-markets.mjs +0 -210
- package/src/data/providers/hl-outcome.mjs +0 -61
- package/src/data/providers/hl-perps.mjs +0 -387
- package/src/data/providers/hl-staking.mjs +0 -353
- package/src/data/providers/hl-ws.mjs +0 -119
- package/src/data/providers/hyperevm-dex.mjs +0 -49
- package/src/data/providers/jupiter-venues.mjs +0 -119
- package/src/data/providers/jupiter.mjs +0 -315
- package/src/data/providers/lifi.mjs +0 -151
- package/src/data/providers/magiceden-sol.mjs +0 -406
- package/src/data/providers/morpho.mjs +0 -177
- package/src/data/providers/nft-gallery.mjs +0 -163
- package/src/data/providers/nft-portfolio.mjs +0 -494
- package/src/data/providers/odos.mjs +0 -156
- package/src/data/providers/oneinch.mjs +0 -174
- package/src/data/providers/opensea-multichain.mjs +0 -136
- package/src/data/providers/opensea-nft.mjs +0 -371
- package/src/data/providers/paraswap.mjs +0 -118
- package/src/data/providers/pendle.mjs +0 -188
- package/src/data/providers/poly-clob.mjs +0 -283
- package/src/data/providers/poly-public.mjs +0 -96
- package/src/data/providers/poly-ws.mjs +0 -103
- package/src/data/providers/portfolio-history.mjs +0 -394
- package/src/data/providers/portfolio.mjs +0 -594
- package/src/data/providers/rfq.mjs +0 -15
- package/src/data/providers/rh-agent.mjs +0 -59
- package/src/data/providers/satflow.mjs +0 -341
- package/src/data/providers/signed-material-guard.mjs +0 -108
- package/src/data/providers/solana-rpc.mjs +0 -197
- package/src/data/providers/uniswap-v3.mjs +0 -349
- package/src/data/providers/uniswap-v4.mjs +0 -414
- package/src/data/providers/zerox.mjs +0 -167
- package/src/data/public-api-scan.mjs +0 -61
- package/src/data/quote-placeholder.mjs +0 -31
- package/src/exact-integer.mjs +0 -72
- package/src/exec-policy.mjs +0 -455
- package/src/flags.mjs +0 -15
- package/src/fresh-window.mjs +0 -76
- package/src/gmx-attestation.mjs +0 -176
- package/src/index.mjs +0 -100
- package/src/nft-gas-war-guard.mjs +0 -139
- package/src/onboarding/agent-keys.mjs +0 -161
- package/src/onboarding/harness-configs.mjs +0 -102
- package/src/onboarding/index.mjs +0 -18
- package/src/onboarding/tiers.mjs +0 -139
- package/src/oracle-env.mjs +0 -47
- package/src/portfolio-risk.mjs +0 -170
- package/src/prepare-envelope.mjs +0 -204
- package/src/profile-upgrade.mjs +0 -277
- package/src/protocol-execution.mjs +0 -84
- package/src/protocol-templates/gate.mjs +0 -179
- package/src/protocol-templates/prepare-deploy.mjs +0 -81
- package/src/public-api/buzz-integration.mjs +0 -256
- package/src/public-api/connect-agent.mjs +0 -416
- package/src/public-api/grants.mjs +0 -142
- package/src/public-api/http.mjs +0 -389
- package/src/public-control/aa-adapter.mjs +0 -402
- package/src/public-control/build-registry.mjs +0 -227
- package/src/public-control/bundler-client.mjs +0 -357
- package/src/public-control/grant-indexer.mjs +0 -296
- package/src/public-control/policy-render.mjs +0 -69
- package/src/public-control/policy-schema.mjs +0 -318
- package/src/public-control/runtime-config.mjs +0 -275
- package/src/public-control/session-key-model.mjs +0 -374
- package/src/public-control/session-orchestrator.mjs +0 -412
- package/src/rfq/intent.mjs +0 -180
- package/src/rfq/sources.mjs +0 -181
- package/src/route-attestation.mjs +0 -132
- package/src/router/best-execution.mjs +0 -326
- package/src/router/index.mjs +0 -226
- package/src/router/prepare-bridge.mjs +0 -289
- package/src/router/prepare-route.mjs +0 -398
- package/src/router/proposal.mjs +0 -311
- package/src/router/risk-classifier.mjs +0 -119
- package/src/router/route-sources.mjs +0 -364
- package/src/scanner/chains.config.mjs +0 -430
- package/src/scanner/contract.mjs +0 -270
- package/src/scanner/evm-scanner.mjs +0 -394
- package/src/scanner/index.mjs +0 -9
- package/src/scanner/v2-venue.mjs +0 -335
- package/src/scanner/v3-venue.mjs +0 -290
- package/src/scopes.mjs +0 -44
- package/src/sell-simulation.mjs +0 -167
- package/src/signals/engine.mjs +0 -146
- package/src/signals/index.mjs +0 -1
- package/src/token-transfer-guard.mjs +0 -188
- package/src/tui/app.mjs +0 -438
- package/src/tui/backend.mjs +0 -145
- package/src/tui/format.mjs +0 -272
- package/src/tui/gateway-client.mjs +0 -177
- package/src/tui/input.mjs +0 -501
- package/src/tui/renderer.mjs +0 -443
- package/src/tui/standalone-client.mjs +0 -666
- package/src/tui/theme.mjs +0 -81
- package/src/vault-attestation.mjs +0 -146
- package/src/venues.mjs +0 -206
- 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`.
|