@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.
- package/README.md +12 -5
- package/SETUP.md +35 -1
- package/artifacts/specialist-packs/oracle-full-crypto.json +31 -9
- package/bin/oracle-data-mcp.mjs +247 -4
- package/bin/oracle-init.mjs +100 -27
- package/docs/profiles.md +27 -7
- package/package.json +1 -1
- package/profiles/_template/SOUL.md +8 -1
- package/profiles/oracle/SOUL.md +8 -1
- package/profiles/oracle/profile.json +5 -2
- package/profiles/protocol-builder/SOUL.md +13 -6
- package/profiles/protocol-builder/profile.json +3 -1
- package/skills/balance/SKILL.md +176 -0
- package/skills/oracle-multichain-nft-launch/SKILL.md +338 -0
- package/skills/oracle-multichain-token-launch/SKILL.md +300 -0
- package/src/data/catalog.mjs +27 -3
- package/src/data/desk-data.mjs +34 -4
- package/src/data/providers/magiceden-sol.mjs +21 -2
- package/src/data/providers/nft-gallery.mjs +163 -0
- package/src/data/providers/nft-portfolio.mjs +494 -0
- package/src/data/providers/opensea-nft.mjs +272 -0
- package/src/data/providers/portfolio-history.mjs +394 -0
- package/src/data/providers/portfolio.mjs +594 -0
- package/src/data/providers/satflow.mjs +1 -0
- package/src/exec-policy.mjs +5 -0
- package/src/gmx-attestation.mjs +1 -0
- package/src/vault-attestation.mjs +1 -0
|
@@ -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`.
|
package/src/data/catalog.mjs
CHANGED
|
@@ -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
|
|
412
|
+
description: "OpenSea multichain NFT inventory, estimated values, indexed account PnL, collection floors, and unsigned listing actions",
|
|
389
413
|
});
|
|
390
414
|
|
|
391
415
|
registerProvider({
|