@oracle-agent/oracle 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,338 @@
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`.
@@ -0,0 +1,300 @@
1
+ ---
2
+ name: oracle-multichain-token-launch
3
+ description: Use when planning, building, reviewing, or preparing a fungible token launch on EVM, Solana, Bitcoin Runes, Cosmos, Move, Hyperliquid, or another chain family. Fail closed on unsupported adapters; prepare and simulate only; the user signs each side effect.
4
+ ---
5
+
6
+ # Multichain token launch
7
+
8
+ ## Contract
9
+
10
+ Use this skill for fungible asset creation, initial distribution, public sale setup,
11
+ and liquidity bootstrap preparation.
12
+
13
+ "Every chain" means route the request to a verified chain-family path. It does not
14
+ mean one bytecode artifact or one transaction encoder works everywhere. Never call
15
+ a chain launch-ready because its RPC responds.
16
+
17
+ Oracle researches, scaffolds, validates, simulates, and prepares unsigned actions.
18
+ The user signs deployment, mint, metadata, authority, liquidity, and verification
19
+ actions separately. Never broadcast from this skill.
20
+
21
+ When loaded by the `oracle` router, use this skill to classify the request, then
22
+ route chain research to the relevant specialist and build/prepare work to
23
+ `protocol-builder`. The router remains read and simulate only.
24
+
25
+ ## Support status language
26
+
27
+ Use exactly one status before building:
28
+
29
+ | Status | Meaning |
30
+ |---|---|
31
+ | `TEMPLATE_READY` | Oracle ships a gated template and unsigned prepare path for this exact standard. |
32
+ | `ADAPTER_READY` | A chain-specific encoder exists and passed live simulation or testnet verification. |
33
+ | `GUIDED_BUILD` | Oracle can scaffold and test it, but no generic transaction adapter is shipped. |
34
+ | `RESEARCH_ONLY` | Oracle can verify chain mechanics and produce a launch plan, not a deployable bundle. |
35
+ | `UNSUPPORTED` | Required chain primitives or trustworthy tooling cannot be verified. Stop. |
36
+
37
+ Do not upgrade a status without evidence. A compiler pass alone is not
38
+ `ADAPTER_READY`. A mainnet-ready claim needs exact chain identity, final artifacts,
39
+ simulation, fee estimate, and source/program verification path.
40
+
41
+ ## Current family matrix
42
+
43
+ | Family | Common standards | Default status | Required path |
44
+ |---|---|---|---|
45
+ | EVM | ERC-20 | `TEMPLATE_READY` only for Oracle `safe-erc20`; custom tax, mint, proxy, or hook designs are `GUIDED_BUILD` | Foundry gate, chain-id proof, unsigned deploy, source verification |
46
+ | Solana | SPL Token, Token-2022 | `GUIDED_BUILD` | Select extensions explicitly, construct unsigned transactions, simulate, user wallet signs |
47
+ | Bitcoin | Runes | `RESEARCH_ONLY` until an etch adapter is present | Commit/reveal plan, UTXO and fee model, exact terms review |
48
+ | Cosmos | tokenfactory, CW20 | `RESEARCH_ONLY` by default | Resolve the chain's module or CosmWasm messages; EVM-enabled Cosmos chains use the EVM path only when verified |
49
+ | Sui | Coin, regulated coin primitives | `RESEARCH_ONLY` by default | Move package, treasury capability model, devnet/testnet publish first |
50
+ | Aptos | Coin, Fungible Asset | `RESEARCH_ONLY` by default | Move module/object model, upgrade policy, testnet publish first |
51
+ | Hyperliquid L1 | spot asset deployment | `RESEARCH_ONLY` | Verify current native deployment/auction process; HIP-3 is a market deployment, not a generic token contract |
52
+ | HyperEVM | ERC-20 | EVM status | Use the exact HyperEVM chain id and verified gas/DEX addresses |
53
+ | Other | chain-native | `UNSUPPORTED` until classified | Add and verify a dedicated adapter before preparing transactions |
54
+
55
+ This matrix is the minimum truth bar, not a marketing ceiling. If a verified adapter
56
+ lands later, update its status with tests and evidence.
57
+
58
+ ## 1. Build the launch manifest
59
+
60
+ Do not write code until all required fields are known:
61
+
62
+ ```yaml
63
+ asset:
64
+ name: ""
65
+ symbol: ""
66
+ chain_family: ""
67
+ chain_name: ""
68
+ chain_id_or_genesis: ""
69
+ network: mainnet|testnet|devnet|local
70
+ standard: ""
71
+ decimals: null
72
+ max_supply: ""
73
+ initial_supply: ""
74
+ allocation:
75
+ treasury: ""
76
+ public: ""
77
+ liquidity: ""
78
+ team: ""
79
+ community: ""
80
+ authorities:
81
+ mint: none|wallet|multisig|timelock|program
82
+ freeze: none|wallet|multisig|timelock|program
83
+ pause: none|wallet|multisig|timelock
84
+ upgrade: none|wallet|multisig|timelock
85
+ metadata: immutable|wallet|multisig|timelock
86
+ mechanics:
87
+ transfer_tax_bps: 0
88
+ blacklist: false
89
+ transfer_hook: none
90
+ sale: none
91
+ liquidity: none
92
+ verification:
93
+ source: required
94
+ simulation: required
95
+ firm_audit: false
96
+ ```
97
+
98
+ Reject ambiguous supply units. Record raw base units and human-readable units.
99
+ Percent allocations must total 100 percent before deploy preparation.
100
+
101
+ ## 2. Verify the chain, standard, and tooling
102
+
103
+ 1. Resolve the exact chain identity from a live RPC or official client.
104
+ 2. Verify native gas asset, address format, finality model, fee fields, explorer,
105
+ compiler/toolchain version, and source/program verification mechanism.
106
+ 3. Verify the intended standard from official chain or standards documentation.
107
+ 4. Prefer a boring official or widely reviewed implementation.
108
+ 5. Record every external factory, router, program, module, and metadata endpoint.
109
+ 6. Mark unverified addresses and deprecated tooling `UNSUPPORTED`, not best effort.
110
+
111
+ Chain names are not identities. `mainnet`, `testnet`, and forks must carry distinct
112
+ IDs and RPC evidence.
113
+
114
+ ## 3. Force an authority decision
115
+
116
+ Before generating transactions, print a table for:
117
+
118
+ - mint or treasury capability
119
+ - freeze or deny-list capability
120
+ - pause capability
121
+ - upgrade authority
122
+ - metadata authority
123
+ - fee/tax setter
124
+ - transfer-hook owner
125
+ - sale contract owner
126
+ - liquidity position owner
127
+ - treasury and royalty recipients
128
+
129
+ For each authority, state who holds it at creation, whether it can change, the
130
+ transfer/revoke transaction, and what breaks if revoked.
131
+
132
+ Defaults:
133
+
134
+ - fixed supply when future minting is not a product requirement
135
+ - no transfer tax
136
+ - no blacklist
137
+ - no proxy upgradeability
138
+ - no hidden owner balance changes
139
+ - multisig or timelock for powers that must remain
140
+ - revoke only after verification and launch operations that need the authority
141
+
142
+ Never claim "renounced" until independent on-chain read-back proves it.
143
+
144
+ ## 4. Family-specific build paths
145
+
146
+ ### EVM
147
+
148
+ For a plain fixed-supply token, use Oracle's gated template:
149
+
150
+ ```js
151
+ data.call("protocol-templates", "gate", { templateId: "safe-erc20" })
152
+ data.call("protocol-templates", "prepareDeploy", {
153
+ templateId: "safe-erc20",
154
+ chainId,
155
+ args: [name, symbol, supply, initialHolder, initialOwner],
156
+ })
157
+ ```
158
+
159
+ Required gates:
160
+
161
+ 1. Verify chain id and RPC reality.
162
+ 2. `forge test` passes.
163
+ 3. Static analysis runs when available.
164
+ 4. Constructor units and addresses decode back exactly.
165
+ 5. Dry-run deployment succeeds on the target chain fork when archive state exists.
166
+ 6. Unsigned deploy is stamped; source verification input is prepared separately.
167
+ 7. Liquidity and ownership changes remain separate unsigned actions.
168
+
169
+ Any custom minting, tax, blacklist, transfer hook, proxy, permit, votes, vesting, or
170
+ cross-chain bridge logic leaves `safe-erc20` and becomes a custom `GUIDED_BUILD`.
171
+ Do not silently bolt features onto the reviewed template.
172
+
173
+ ### Solana
174
+
175
+ Choose standard SPL Token unless a specific Token-2022 extension is required.
176
+ For Token-2022, enumerate every selected extension and its authority, including
177
+ transfer fees, permanent delegate, transfer hook, default account state, metadata
178
+ pointer, interest bearing, confidential transfer, and non-transferable behavior.
179
+
180
+ Prepare distinct unsigned transactions for:
181
+
182
+ 1. create mint account and initialize mint
183
+ 2. create metadata when used
184
+ 3. create distribution token accounts
185
+ 4. mint initial supply
186
+ 5. transfer or revoke mint authority
187
+ 6. transfer or revoke freeze authority
188
+ 7. create sale or liquidity positions, only if separately approved
189
+
190
+ Simulate each transaction against the intended cluster. A blockhash-expired result
191
+ must be rebuilt, never manually edited.
192
+
193
+ ### Bitcoin Runes
194
+
195
+ A Rune launch is an etching, not a smart-contract deployment. Collect and print:
196
+
197
+ - rune name and spacers
198
+ - divisibility and symbol
199
+ - premine
200
+ - mint amount and cap
201
+ - start and end heights or offsets
202
+ - turbo flag
203
+ - commit UTXO, reveal destination, fee rate, and expected total fees
204
+
205
+ Prepare commit/reveal artifacts only through a verified adapter. Protect the commit
206
+ UTXO from accidental spend, account for the reveal window and reorg risk, and never
207
+ promise an indexer ticker reservation before the etching confirms. Without an
208
+ adapter, status stays `RESEARCH_ONLY`.
209
+
210
+ ### Cosmos
211
+
212
+ First determine whether the target uses a native tokenfactory module, CosmWasm
213
+ CW20, or an EVM runtime. These are different launch paths.
214
+
215
+ - tokenfactory: verify denom creation, mint, burn, admin-change, and metadata message
216
+ types from that chain's running version
217
+ - CW20: compile and test the exact contract artifact, instantiate message, minter
218
+ model, marketing info, and migration admin
219
+ - EVM runtime: use the EVM path only after proving chain id and JSON-RPC behavior
220
+
221
+ Never transplant Osmosis, Injective, Sei, or another chain's message type by name.
222
+
223
+ ### Sui and Aptos
224
+
225
+ Sui and Aptos need separate Move packages and authority models. Do not share source
226
+ because both languages are called Move.
227
+
228
+ - Sui: identify one-time witness, treasury capability, metadata/display objects,
229
+ deny-list or regulated-coin powers, package upgrade policy, and object ownership
230
+ - Aptos: choose Coin or Fungible Asset, define mint/burn/freeze capability objects,
231
+ metadata object, store model, and module upgrade policy
232
+
233
+ Publish and exercise the full lifecycle on devnet/testnet first. Mainnet remains
234
+ `RESEARCH_ONLY` until the exact package and publish transaction pass review.
235
+
236
+ ### Hyperliquid
237
+
238
+ Do not conflate HIP-3 builder-deployed perp markets, HIP-1 or native spot assets,
239
+ HyperEVM ERC-20s, and HIP-4 outcomes. Route HyperEVM assets to EVM. For Hyperliquid
240
+ L1 native assets, verify current official deployment, auction, genesis allocation,
241
+ and deployer requirements before naming a prepare path. Without a dedicated native
242
+ adapter, status is `RESEARCH_ONLY`.
243
+
244
+ ## 5. Distribution, sale, and liquidity are separate actions
245
+
246
+ Token creation does not authorize a sale or pool. For each follow-on action, show:
247
+
248
+ - destination contract/program/module
249
+ - token and quote amounts
250
+ - opening price and implied fully diluted value
251
+ - slippage and deadline
252
+ - LP ownership, lock, burn, or withdrawal rights
253
+ - treasury recipient
254
+ - vesting terms and clawback/admin powers
255
+ - simulation and fee estimate
256
+
257
+ Verify DEX factories and routers on the exact chain. A canonical address on Ethereum
258
+ is not canonical on a sibling EVM chain.
259
+
260
+ Never auto-create liquidity after deployment. Never auto-revoke authority before
261
+ metadata, distribution, or verification actions that need it are complete.
262
+
263
+ ## 6. Required artifacts
264
+
265
+ A completed prepare run returns:
266
+
267
+ 1. `launch-manifest.yaml` with exact units and chain identity
268
+ 2. authority and mutability table
269
+ 3. source/package hash and dependency lock
270
+ 4. test and static-analysis results
271
+ 5. target-chain simulation or an explicit reason it is unavailable
272
+ 6. fee and balance estimate
273
+ 7. ordered unsigned transaction bundle with hashes
274
+ 8. source/program verification payload
275
+ 9. separate liquidity/distribution bundle when requested
276
+ 10. a final user approval checklist, one side effect per line
277
+
278
+ Do not emit a signed payload, private key request, seed phrase request, or broadcast
279
+ command with signing enabled.
280
+
281
+ ## Refusals
282
+
283
+ Refuse hidden minting, honeypots, selective sell blocks, fake renouncement, covert
284
+ taxes, wash liquidity, fake volume, stolen upgrade keys, undisclosed permanent
285
+ delegates, and misleading supply claims.
286
+
287
+ ## Completion gate
288
+
289
+ A launch is only `PREPARED` when:
290
+
291
+ - chain and standard are exact
292
+ - support status is honest
293
+ - supply and allocation reconcile
294
+ - all authorities are disclosed
295
+ - tests pass
296
+ - simulation passes or the missing capability is explicit
297
+ - every destination and payload hash is recorded
298
+ - no signing or broadcast occurred
299
+
300
+ Anything less is `DRAFT`, `RESEARCH_ONLY`, or `UNSUPPORTED`.
@@ -98,6 +98,29 @@ registerProvider({
98
98
  description: "RH agent local HTTP (unauthenticated read routes)",
99
99
  });
100
100
 
101
+ registerProvider({
102
+ id: "portfolio",
103
+ venue: "multichain-wallet",
104
+ chainIds: [1, 10, 56, 137, 988, 999, 2741, 4663, 8453, 42161, 43114],
105
+ auth: "none",
106
+ ops: ["health", "balances", "snapshot", "history", "valueGraph"],
107
+ execution: "read-only",
108
+ description:
109
+ "Read-only balance aggregation across configured EVM chains, Solana, Bitcoin, and Hyperliquid, plus profile-local observation snapshots, history, and value graphs with explicit partial coverage.",
110
+ });
111
+
112
+ registerProvider({
113
+ id: "nft-portfolio",
114
+ venue: "multichain-nft-wallet",
115
+ chainIds: [1, 10, 137, 988, 999, 2741, 4663, 8453, 42161, 43114],
116
+ auth: "optionalApiKey",
117
+ ops: ["health", "inventory", "gallery", "pnl", "prepareList"],
118
+ execution: "prepare",
119
+ baseEnv: ["OPENSEA_API_KEY", "MAGICEDEN_API_KEY", "SATFLOW_API_KEY"],
120
+ description:
121
+ "Normalized EVM, Solana, and Bitcoin NFT inventory, static contact-sheet galleries, explicit PnL coverage, and user-confirmed unsigned listing preparation.",
122
+ });
123
+
101
124
  registerProvider({
102
125
  id: "evm-rpc",
103
126
  venue: "evm",
@@ -381,11 +404,12 @@ registerProvider({
381
404
  registerProvider({
382
405
  id: "opensea-nft",
383
406
  venue: "nft",
384
- chainIds: [1],
407
+ chainIds: [1, 10, 137, 988, 999, 2741, 4663, 8453, 42161, 43114],
385
408
  auth: "apiKey",
386
- ops: ["health", "collection", "floor"],
409
+ ops: ["health", "collection", "floor", "accountNfts", "accountPnl", "prepareList"],
410
+ execution: "prepare",
387
411
  baseEnv: ["OPENSEA_API_KEY", "OPENSEA_ENV_FILE"],
388
- description: "OpenSea collection + floor (OPENSEA_API_KEY)",
412
+ description: "OpenSea multichain NFT inventory, estimated values, indexed account PnL, collection floors, and unsigned listing actions",
389
413
  });
390
414
 
391
415
  registerProvider({