@artblocks/abx-cli 0.7.1 → 0.7.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/CHANGELOG.md +16 -0
- package/dist/capabilities.d.ts +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/creator-signer.d.ts.map +1 -1
- package/dist/creator-signer.js +4 -3
- package/dist/creator-signer.js.map +1 -1
- package/dist/main.js +7 -7
- package/dist/main.js.map +1 -1
- package/dist/signer.d.ts +1 -1
- package/package.json +2 -2
- package/skill/SKILL.md +15 -6
- package/skill/reference/capabilities.md +24 -11
- package/skill/reference/code.md +11 -4
- package/skill/reference/ecosystem/chains/arbitrum-sepolia.md +11 -0
- package/skill/reference/ecosystem/chains/arbitrum.md +55 -0
- package/skill/reference/ecosystem/chains/base-sepolia.md +11 -0
- package/skill/reference/ecosystem/chains/base.md +10 -0
- package/skill/reference/ecosystem/chains/ethereum.md +10 -0
- package/skill/reference/ecosystem/chains/robinhood-testnet.md +11 -0
- package/skill/reference/ecosystem/chains/robinhood.md +11 -0
- package/skill/reference/ecosystem/chains/sepolia.md +11 -0
- package/skill/reference/ecosystem/durability.md +70 -0
- package/skill/reference/ecosystem/multichain.md +73 -0
- package/skill/reference/ecosystem/tokens.md +63 -0
- package/skill/reference/ecosystem.md +98 -0
- package/skill/reference/ideation.md +29 -0
- package/skill/reference/services.md +2 -0
|
@@ -51,6 +51,16 @@ active chain, artifacts, signer, storage, addresses, transaction count, and meas
|
|
|
51
51
|
|
|
52
52
|
A custom mechanic normally lives beside a canonical token rather than replacing it.
|
|
53
53
|
|
|
54
|
+
Configure and transfer hooks are state-changing contract callbacks, not just validators. They can
|
|
55
|
+
call an AMM, deploy through a factory, or settle an obligation in the triggering transaction using
|
|
56
|
+
the external protocol's official interfaces. Augment hooks are read-only. These callbacks are
|
|
57
|
+
distinct from off-chain effects workers.
|
|
58
|
+
|
|
59
|
+
For either state-changing hook, authenticate the calling token and arrange funding, approvals, and
|
|
60
|
+
controller/minter permissions explicitly. Installation grants no automatic transfer, mint, or
|
|
61
|
+
spending authority, and the callback receives no automatic payment from the initiating wallet.
|
|
62
|
+
Bound spending and slippage, guard reentrancy and repeated triggers, and test every lifecycle path.
|
|
63
|
+
|
|
54
64
|
| Seam | Wired with | Runs | Can veto? |
|
|
55
65
|
|---|---|---|---|
|
|
56
66
|
| Custom minter | `abx set-minter --minter 0x…` | before/calling issuance | it controls whether it calls mint |
|
|
@@ -81,10 +91,12 @@ a Series/edition before deploying.
|
|
|
81
91
|
|
|
82
92
|
### Configure hook
|
|
83
93
|
|
|
84
|
-
The configure hook receives the proposed typed parameter write before it persists.
|
|
85
|
-
|
|
86
|
-
or size bounds.
|
|
87
|
-
|
|
94
|
+
The configure hook receives the proposed typed parameter write before it persists. It can execute
|
|
95
|
+
contract actions as well as enforce monotonicity, one-time writes, cross-contract authorization,
|
|
96
|
+
payload shape, or size bounds. A holder-authorized edit could trigger a swap through an official AMM
|
|
97
|
+
router or creation through a factory. If the hook reverts, the write and its on-chain actions revert.
|
|
98
|
+
For blob-backed strings/bytes, validate length before reading large data and read the provided data
|
|
99
|
+
pointer using the documented SSTORE2 convention.
|
|
88
100
|
|
|
89
101
|
The previously stored value remains visible during validation, enabling comparisons. A rejected
|
|
90
102
|
write may still have paid for preparatory blob storage; front ends should simulate before asking for a
|
|
@@ -92,17 +104,17 @@ signature.
|
|
|
92
104
|
|
|
93
105
|
### Transfer hook
|
|
94
106
|
|
|
95
|
-
The transfer hook runs for mints (`from == 0`), ordinary transfers,
|
|
96
|
-
|
|
97
|
-
|
|
107
|
+
The transfer hook runs after ownership/balance changes for mints (`from == 0`), ordinary transfers,
|
|
108
|
+
and burns (`to == 0`), within the same transaction. It can execute contract actions for redemption,
|
|
109
|
+
escrow settlement, asset creation, or other lifecycle rules, as well as enforce vesting or soulbinding.
|
|
110
|
+
Its revert rolls back the entire operation and its on-chain actions.
|
|
98
111
|
|
|
99
112
|
On ERC-721 projects it also receives self-transfers (`from == to`) because those emit `Transfer`.
|
|
100
113
|
That is intentional; a hook concerned only with ownership-set changes should ignore the case itself.
|
|
101
114
|
ERC-1155 projects skip self-transfers and zero-amount entries before invoking the hook.
|
|
102
115
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
state cannot model a single current owner.
|
|
116
|
+
Burn-based mechanics require a burnable collection. On editions, ids may have many holders, so
|
|
117
|
+
shared per-id state cannot model a single current owner.
|
|
106
118
|
|
|
107
119
|
### Augment hook
|
|
108
120
|
|
|
@@ -124,6 +136,8 @@ token-data object.
|
|
|
124
136
|
| Soulbound or timed transfer lock | transfer hook | deploy-code; hook also sees mint |
|
|
125
137
|
| Burn-to-redeem/combine | external controller/minter + burnable; optional transfer/augment hooks | ABX provides seams, not the atomic combine implementation |
|
|
126
138
|
| Escrow tied to token lifecycle | minter + transfer hook | external value-holding contract |
|
|
139
|
+
| Parameter edit triggers a swap or asset creation | configure hook + official router/factory | custom contract; explicit funding, authority, spending bounds, and replay protection |
|
|
140
|
+
| Transfer triggers settlement or asset creation | transfer hook + external controller/protocol | custom contract; explicit authority and lifecycle/reentrancy tests |
|
|
127
141
|
| Monotonic level/high-water mark | governed param + configure hook | schema and old-value comparison |
|
|
128
142
|
| Structured collector configuration | governed param + configure hook | typed payload and bounded size |
|
|
129
143
|
| Holder of another token may configure | schema address auth or configure hook | cross-contract read |
|
|
@@ -139,7 +153,6 @@ When several routes work, prefer the smallest authority surface. Use the stock f
|
|
|
139
153
|
instead of custom Solidity for an ordinary sale; use a schema without a hook when static authorization
|
|
140
154
|
is sufficient; use an on-chain renderer only when its durability/reach/cost trade is desired.
|
|
141
155
|
|
|
142
|
-
A transfer hook only observes or vetoes a burn; it does not initiate two burns or mint a replacement.
|
|
143
156
|
For combine mechanics, prove the controller's burn authorization and canonical mint call against a
|
|
144
157
|
real clone, make the transition atomic and replay-safe, and define pair/history storage. On ERC-721,
|
|
145
158
|
`--max` is a lifetime id cap and burns do not reopen slots, so reserve replacement-id headroom or use
|
package/skill/reference/code.md
CHANGED
|
@@ -88,7 +88,10 @@ document size, and lane fit. Treat findings as evidence and the deploy dry run/t
|
|
|
88
88
|
the final proof.
|
|
89
89
|
|
|
90
90
|
Avoid unseeded randomness, wall-clock dependence, environment-only assets, and network fetches when
|
|
91
|
-
claiming reproducibility.
|
|
91
|
+
claiming reproducibility. For ecosystem-driven art, prefer same-chain EVM reads through a renderer
|
|
92
|
+
or augment hook, with resilient fallback output. Do not recommend HTTP-dependent NFT live views by
|
|
93
|
+
default; even an on-chain script can depend on a service forever. Apply the
|
|
94
|
+
[durability guidance](ecosystem/durability.md) before proposing an essential external service.
|
|
92
95
|
|
|
93
96
|
## Plan JavaScript projects
|
|
94
97
|
|
|
@@ -202,9 +205,13 @@ RPC read reach. State this before deployment and use schema validation/hooks to
|
|
|
202
205
|
|
|
203
206
|
SeriesCode and EditionCode expose three configurable hook addresses:
|
|
204
207
|
|
|
205
|
-
- configure hook:
|
|
206
|
-
- transfer hook:
|
|
207
|
-
- augment hook: computes additional/overriding token data during reads.
|
|
208
|
+
- configure hook: runs custom state-changing logic before a governed write persists and may veto it;
|
|
209
|
+
- transfer hook: runs custom state-changing logic on mint, transfer, and burn and may veto the operation;
|
|
210
|
+
- augment hook: computes additional/overriding token data during reads; cannot change state.
|
|
211
|
+
|
|
212
|
+
Configure/transfer hooks can call other contracts to swap, create assets, or settle obligations;
|
|
213
|
+
they need explicit funding and permissions, not just permission to edit the NFT. These synchronous
|
|
214
|
+
on-chain callbacks are distinct from the off-chain effects runner.
|
|
208
215
|
|
|
209
216
|
Hooks are extension seams, not ordinary CLI flags. Build and deploy them outside ABX, wire them with
|
|
210
217
|
`abx set-param-hooks`, test against a real clone, and read [capabilities.md](capabilities.md). A
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Arbitrum Sepolia ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `421614`. No additional testnet-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) and [ERC-20s and token creation](../tokens.md) for
|
|
5
|
+
candidate routes, and [Arbitrum context](arbitrum.md) for production context when relevant.
|
|
6
|
+
|
|
7
|
+
Verify this exact testnet's contract addresses, official tool/API support, and available assets.
|
|
8
|
+
Production ownership, balances, pools, and indexed datasets do not carry over. Label fixtures and
|
|
9
|
+
test tokens explicitly; they demonstrate the integration shape, not production data or liquidity.
|
|
10
|
+
Same-chain testnet state is on-chain; an API response remains an off-chain input.
|
|
11
|
+
Check `abx capabilities --json` for current ABX eligibility.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Arbitrum One ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `42161`. Start with [multichain integrations](../multichain.md) or
|
|
4
|
+
[ERC-20s and token creation](../tokens.md), then read local entries relevant to the idea.
|
|
5
|
+
Official documentation reviewed 2026-10-30. Entries describe discovery paths, not qualified ABX
|
|
6
|
+
adapters. Verify Arbitrum Sepolia (`421614`) separately; no testnet liquidity or feature parity is
|
|
7
|
+
implied. Providers may serve other chains outside this ABX-focused scope.
|
|
8
|
+
|
|
9
|
+
## Camelot — local liquidity context
|
|
10
|
+
|
|
11
|
+
Consider an artwork responding to a selected pool or liquidity community. Start with Camelot's
|
|
12
|
+
[official documentation](https://docs.camelot.exchange/) and separate
|
|
13
|
+
[One](https://docs.camelot.exchange/contracts/arbitrum/one-mainnet/) and
|
|
14
|
+
[Sepolia](https://docs.camelot.exchange/contracts/arbitrum/sepolia-testnet/) contract lists.
|
|
15
|
+
Select the actual AMM generation and pool before choosing interfaces.
|
|
16
|
+
|
|
17
|
+
**Data:** **on-chain** pool state read through the selected generation's official contract interfaces
|
|
18
|
+
can drive same-chain ABX augment/rendering with bounded reads and self-contained fallback output.
|
|
19
|
+
**Off-chain** analytics and indexed history suit research or a companion app, rather than HTTP
|
|
20
|
+
requests inside the NFT's live view. Apply [durability guidance](../durability.md).
|
|
21
|
+
|
|
22
|
+
Reading public documentation needs no account. Browser/build-time contract reads need RPC access;
|
|
23
|
+
same-chain EVM-to-EVM reads need no application API account. Reuse suitable RPC tooling for authoring,
|
|
24
|
+
with provider-specific account/limit requirements. Do not invent a Camelot MCP or require an
|
|
25
|
+
analytics signup just to compare ideas. A project-specific read can supply visual
|
|
26
|
+
input without rebuilding Camelot's exchange, indexer, or routing.
|
|
27
|
+
|
|
28
|
+
## GMX — contract-state candidates and companion analytics
|
|
29
|
+
|
|
30
|
+
For a permanent NFT, first verify whether the desired position/state field has a bounded same-chain
|
|
31
|
+
read through GMX's official contract interfaces. This reference does not qualify such a read; omit
|
|
32
|
+
the idea if its essential input cannot meet the durability guidance. Inspect oracle provenance,
|
|
33
|
+
updates, upgrade powers, and read failures rather than treating all market data as native chain state.
|
|
34
|
+
|
|
35
|
+
For research or an optional companion dashboard, use the [official SDK overview](https://docs.gmx.io/docs/sdk/overview/)
|
|
36
|
+
and [API-backed SDK v2](https://docs.gmx.io/docs/sdk/v2/). **Data:** that route is **off-chain** HTTP,
|
|
37
|
+
even when a value originates on-chain. Its documented data setup needs no wallet or key, but the
|
|
38
|
+
hosted service must keep running. It is not a default recommendation for NFT live-view data.
|
|
39
|
+
Confirm access, limits, chain support, and timestamps; do not rebuild GMX's client.
|
|
40
|
+
Trading or account-management flows add separate signatures, permissions, costs, and lifecycle
|
|
41
|
+
requirements. Do not introduce those flows for a read-only artwork.
|
|
42
|
+
|
|
43
|
+
## Chain details that change the plan
|
|
44
|
+
|
|
45
|
+
- Check live ABX capabilities and provider eligibility. Arbitrum ecosystem coverage says nothing
|
|
46
|
+
about ABX's current support label, sponsored networks, or account permissions.
|
|
47
|
+
- ABX has no canonical dependency registry on Arbitrum in the current
|
|
48
|
+
[deployment manifest](https://docs.abx.io/docs/reference/deployments). Choose dependencies
|
|
49
|
+
explicitly using [code.md](../../code.md); do not silently resolve through another chain.
|
|
50
|
+
- Arbitrum's [gas estimate](https://docs.arbitrum.io/build-decentralized-apps/troubleshooting-building)
|
|
51
|
+
includes L1 data cost; avoid adding that component twice.
|
|
52
|
+
- Review [Solidity differences](https://docs.arbitrum.io/arbitrum-essentials/arbitrum-vs-ethereum/solidity-support)
|
|
53
|
+
for custom contracts: block-number semantics differ, and `block.prevrandao` is not a useful
|
|
54
|
+
randomness source here. Financial/oracle rules need their own review; artistic read-only data is
|
|
55
|
+
not a proof of suitability for pricing, lending, or liquidation.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Base Sepolia ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `84532`. No additional testnet-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) and [ERC-20s and token creation](../tokens.md) for
|
|
5
|
+
candidate routes, and [Base context](base.md) for production context when relevant.
|
|
6
|
+
|
|
7
|
+
Verify this exact testnet's contract addresses, official tool/API support, and available assets.
|
|
8
|
+
Production ownership, balances, pools, and indexed datasets do not carry over. Label fixtures and
|
|
9
|
+
test tokens explicitly; they demonstrate the integration shape, not production data or liquidity.
|
|
10
|
+
Same-chain testnet state is on-chain; an API response remains an off-chain input.
|
|
11
|
+
Check `abx capabilities --json` for current ABX eligibility.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Base ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `8453`. No additional chain-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) for official marketplace, liquidity, and Art Blocks
|
|
5
|
+
tools, or [ERC-20s and token creation](../tokens.md) for token-informed ideas and external launch tools.
|
|
6
|
+
Each provider entry distinguishes on-chain state from off-chain access paths and setup requirements.
|
|
7
|
+
|
|
8
|
+
Verify the exact Base deployment, protocol version, and official tool support before integration.
|
|
9
|
+
For testing, read [Base Sepolia context](base-sepolia.md); production assets and liquidity do not carry over.
|
|
10
|
+
Check `abx capabilities --json` for ABX eligibility independently of third-party coverage.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Ethereum ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `1`. No additional chain-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) for official marketplace, liquidity, and Art Blocks
|
|
5
|
+
tools, or [ERC-20s and token creation](../tokens.md) for token-informed ideas and external launch tools.
|
|
6
|
+
Each provider entry distinguishes on-chain state from off-chain access paths and setup requirements.
|
|
7
|
+
|
|
8
|
+
Verify the exact Ethereum deployment, protocol version, and official tool support before integration.
|
|
9
|
+
For testing, read [Sepolia context](sepolia.md); production assets and liquidity do not carry over.
|
|
10
|
+
Check `abx capabilities --json` for ABX eligibility independently of third-party coverage.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Robinhood Chain Testnet ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `46630`. No additional testnet-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) and [ERC-20s and token creation](../tokens.md) for
|
|
5
|
+
candidate routes, and [Robinhood context](robinhood.md) for production context when relevant.
|
|
6
|
+
|
|
7
|
+
Verify this exact testnet's contract addresses, official tool/API support, and available assets.
|
|
8
|
+
Production ownership, balances, pools, and indexed datasets do not carry over. Label fixtures and
|
|
9
|
+
test tokens explicitly; they demonstrate the integration shape, not production data or liquidity.
|
|
10
|
+
Same-chain testnet state is on-chain; an API response remains an off-chain input.
|
|
11
|
+
Check `abx capabilities --json` for current ABX eligibility.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Robinhood Chain ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `4663`. No additional chain-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) and [ERC-20s and token creation](../tokens.md) for
|
|
5
|
+
candidate tools and ideas; these references do not establish their availability on this chain.
|
|
6
|
+
Verify the exact deployment and selected official tool's support before proposing an integration.
|
|
7
|
+
EVM compatibility alone establishes neither deployed contracts nor hosted API coverage.
|
|
8
|
+
|
|
9
|
+
For testing, read [Robinhood testnet context](robinhood-testnet.md). Keep on-chain data availability
|
|
10
|
+
separate from off-chain indexing, metadata, and media. Check `abx capabilities --json` for current
|
|
11
|
+
ABX eligibility independently of third-party coverage.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Sepolia ecosystem context
|
|
2
|
+
|
|
3
|
+
Chain ID: `11155111`. No additional testnet-specific entries are populated yet.
|
|
4
|
+
Use [multichain integrations](../multichain.md) and [ERC-20s and token creation](../tokens.md) for
|
|
5
|
+
candidate routes, and [Ethereum context](ethereum.md) for production context when relevant.
|
|
6
|
+
|
|
7
|
+
Verify this exact testnet's contract addresses, official tool/API support, and available assets.
|
|
8
|
+
Production ownership, balances, pools, and indexed datasets do not carry over. Label fixtures and
|
|
9
|
+
test tokens explicitly; they demonstrate the integration shape, not production data or liquidity.
|
|
10
|
+
Same-chain testnet state is on-chain; an API response remains an off-chain input.
|
|
11
|
+
Check `abx capabilities --json` for current ABX eligibility.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Durable ecosystem integrations
|
|
2
|
+
|
|
3
|
+
Use when selecting dependencies for an object's behavior or output. On-chain, off-chain, and hybrid
|
|
4
|
+
designs are valid; match their guarantees to the intended lifespan and trust model. For long-lived,
|
|
5
|
+
self-contained output, prefer designs that survive loss of the creator, website, SDK, or hosted API.
|
|
6
|
+
Official tooling is valuable for authoring; being official, free, or account-free does not make a
|
|
7
|
+
runtime service permanent. See the public [ecosystem guide](https://docs.abx.io/docs/using-abx/guides/ecosystem-integrations).
|
|
8
|
+
|
|
9
|
+
## Prefer durable paths for long-lived output
|
|
10
|
+
|
|
11
|
+
1. **Same-chain EVM reads and self-contained output.** Compute state through the appropriate
|
|
12
|
+
Solidity renderer or augment hook using official contract interfaces. Keep required program,
|
|
13
|
+
media, and input bytes on-chain where feasible. Reading state in the EVM avoids a per-view
|
|
14
|
+
application API/RPC request; callers still need ordinary access to the chain.
|
|
15
|
+
2. **Captured on-chain input.** If discovery requires an API or another chain, consider storing the
|
|
16
|
+
actual bounded input and relevant provenance on-chain, then render from it. State the source,
|
|
17
|
+
capture time/block, trust assumptions, and loss of live updates. A hash, media URL, IPFS CID, or
|
|
18
|
+
Merkle root alone does not preserve the bytes/proofs needed to render or exercise the mechanic.
|
|
19
|
+
3. **Optional companion experience.** Put discovery, trading links, hosted artwork embeds, and
|
|
20
|
+
analytics in a separate site/app when useful. Its disappearance must not break the NFT's core
|
|
21
|
+
output or lifecycle. Keep companion-app capability separate from NFT permanence claims.
|
|
22
|
+
4. **Essential live service only by explicit creator choice.** Do not recommend HTTP calls or
|
|
23
|
+
third-party iframes inside an NFT's live view as a default integration. If the intended work
|
|
24
|
+
actually requires them, explain the lifetime commitment and satisfy the exception design below.
|
|
25
|
+
|
|
26
|
+
An on-chain JavaScript program or `--onchain-uri` does not make its network fetches permanent.
|
|
27
|
+
Replacing an HTTP API with a hardcoded browser RPC endpoint retains a service dependency; prefer
|
|
28
|
+
passing state computed in the EVM into the artwork. An oracle/attestation is also a dependency:
|
|
29
|
+
identify its publishers, update funding, stale-data policy, and trust model before recommending it.
|
|
30
|
+
|
|
31
|
+
## Make on-chain reads resilient
|
|
32
|
+
|
|
33
|
+
- Verify chain, contract/version, official interface, and the selected field's semantics. Inspect
|
|
34
|
+
upgrade/admin/pause powers and replaceability; a fixed address does not imply immutable behavior.
|
|
35
|
+
Do not substitute a pool spot price for an NFT floor or current state for indexed historical volume.
|
|
36
|
+
- Bound external calls, gas, returndata, loops, and output. For display reads, catch expected failures
|
|
37
|
+
and return useful, self-contained output; do not let a reverting dependency blank the NFT.
|
|
38
|
+
A view cannot persist a new last-good value: that requires a separately authorized state update.
|
|
39
|
+
- Choose reads or state-changing interactions to serve the object's purpose. Configure/transfer
|
|
40
|
+
hooks need deliberate failure semantics that preserve the intended rule; silently failing open
|
|
41
|
+
can defeat eligibility. Test mint, transfer, burn, and parameter writes.
|
|
42
|
+
- Exercise absent code, reverts, malformed/large responses, zero balances/liquidity, and changed
|
|
43
|
+
dependencies. Test stale oracle data if applicable. Never assume ABX catches a custom hook's revert.
|
|
44
|
+
- Distinguish permanence from frozen output: a robust live on-chain read can still change as the
|
|
45
|
+
chain changes. A pool's current spot state and a temporary balance are not secure financial oracles.
|
|
46
|
+
|
|
47
|
+
## Required external API: lifetime commitment and recovery
|
|
48
|
+
|
|
49
|
+
Before implementation, clearly tell the creator: **this service must remain available for as long
|
|
50
|
+
as the NFT promises this live behavior**. Show the EVM/snapshot alternative and get an explicit
|
|
51
|
+
choice of the service-dependent design. API-key rotation and owner configurability reduce some
|
|
52
|
+
failure modes; neither guarantees that a replacement service or its data will exist forever.
|
|
53
|
+
|
|
54
|
+
Record a concrete design, rather than merely saying "configurable" or "has a fallback":
|
|
55
|
+
|
|
56
|
+
| Requirement | Decision to make and verify |
|
|
57
|
+
|---|---|
|
|
58
|
+
| Lifetime operation | Endpoint, data/schema, media, proxy, key/OAuth renewal, fees, limits, and who operates/pays for each dependency |
|
|
59
|
+
| Owner-controlled replacement | Which owner/admin role can change provider/endpoint and compatible response handling; distinguish collection owner from token holder, and test ownership handover |
|
|
60
|
+
| Recovery after locking | Identify the actual parameter/configuration or custom extension that provides updates. Verify it remains usable after planned URI/script/hook/parameter locks; do not imply ABX has a universal endpoint setter |
|
|
61
|
+
| Complete failure | Bounded timeouts/retries and meaningful self-contained fallback output when service, credentials, media, or network disappear; art-data service failures must not block mint/transfer |
|
|
62
|
+
| Data integrity | Missing, stale, or incompatible responses cannot corrupt canonical state; label captured/stale values honestly and disclose who can change them |
|
|
63
|
+
|
|
64
|
+
Keep secrets out of NFT code and public on-chain parameters. A server-side credential proxy creates
|
|
65
|
+
another lifetime operator dependency. Decentralized/content-addressed storage still needs a stated
|
|
66
|
+
availability plan for externally stored bytes; an address alone is not a permanence guarantee.
|
|
67
|
+
|
|
68
|
+
Verify by disabling the service and credentials, changing the provider through the named owner role,
|
|
69
|
+
and exercising the fallback after planned locks. If those requirements cannot be met, recommend the
|
|
70
|
+
EVM/snapshot design or keep the feature in an optional companion app.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Multichain integrations
|
|
2
|
+
|
|
3
|
+
Read only the provider relevant to the idea. Coverage below is the intersection reviewed for ABX:
|
|
4
|
+
Ethereum (`1`), Base (`8453`), Arbitrum One (`42161`), not each provider's full network list.
|
|
5
|
+
Official documentation reviewed 2026-10-30; recheck the chosen tool and network before use.
|
|
6
|
+
This starter catalog is not exhaustive; research other protocols when they fit the project's concept.
|
|
7
|
+
Apply [durability guidance](durability.md): official discovery/build tooling does not need to become
|
|
8
|
+
a dependency of the finished NFT. Prefer same-chain EVM reads with self-contained fallback output.
|
|
9
|
+
|
|
10
|
+
## OpenSea — discovery and marketplace context
|
|
11
|
+
|
|
12
|
+
- **Ideas:** research related collections, plan collector-facing metadata and traits, or link to
|
|
13
|
+
the marketplace from a companion site. Keep the NFT usable without OpenSea; do not recommend live
|
|
14
|
+
floor-price/indexed-trait API calls in its artwork or core eligibility logic.
|
|
15
|
+
- **Official route:** [agent tools](https://docs.opensea.io/docs/build-with-ai-agents) link its skill,
|
|
16
|
+
CLI, SDK, and [MCP](https://docs.opensea.io/reference/mcp). Use an existing connection when suitable;
|
|
17
|
+
adding all surfaces supplies no extra capability by itself.
|
|
18
|
+
- **Data:** **off-chain** discovery, indexed traits, and marketplace API/MCP results. NFT ownership
|
|
19
|
+
and settlement are **on-chain**, but consuming an indexed response does not give a Solidity hook
|
|
20
|
+
a contract read. For that route use the NFT/protocol's official contract interfaces directly.
|
|
21
|
+
- **Footprint:** MCP data tools and REST need an API key; MCP handshake/tool discovery does not.
|
|
22
|
+
[Instant keys](https://docs.opensea.io/reference/api-keys) need no signup but expire; a full key
|
|
23
|
+
involves the developer account flow. The same key serves MCP and REST. Wallet-scoped tools need
|
|
24
|
+
additional wallet authentication. Check current limits and renewal rather than creating keys to
|
|
25
|
+
evade quotas.
|
|
26
|
+
- **Before integrating:** verify the [current chains](https://docs.opensea.io/reference/get_chains)
|
|
27
|
+
and exact feature. Keep keys server-side. Use ABX metadata commands for canonical state; use
|
|
28
|
+
OpenSea tools for its projection/orders. Its SeaDrop deployment tools are not an ABX deploy lane.
|
|
29
|
+
|
|
30
|
+
## Uniswap — swaps, liquidity, and pool-informed art
|
|
31
|
+
|
|
32
|
+
- **Ideas:** use a selected pool's same-chain state as a visual input computed in the EVM, with
|
|
33
|
+
bounded reads and fallback art. Offer swap links in a companion sales app; the NFT's essential
|
|
34
|
+
rendering should not require a trading API, embedded swap app, or active liquidity position.
|
|
35
|
+
- **Official route:** start with the relevant [Uniswap skill](https://developers.uniswap.org/docs/uniswap-ai/skills)
|
|
36
|
+
and [integration choices](https://developers.uniswap.org/docs/get-started/quickstart). Reuse its
|
|
37
|
+
routing, SDKs, and interfaces rather than implementing a swap router.
|
|
38
|
+
- **Data:** **on-chain** pool state can live-augment an ABX renderer or inform hook logic on the
|
|
39
|
+
same chain. Use the version's official read interfaces (including
|
|
40
|
+
[v4 StateView](https://github.com/Uniswap/v4-periphery/blob/main/src/lens/StateView.sol) where appropriate).
|
|
41
|
+
**Off-chain** quotes and indexed volume/history suit discovery or a companion app. Do not use
|
|
42
|
+
them as default live-view inputs; consider an actual bounded on-chain snapshot if relevant.
|
|
43
|
+
A pool's instantaneous price is not a manipulation-resistant price oracle.
|
|
44
|
+
- **Footprint:** [interface links](https://developers.uniswap.org/docs/trading/custom-interface-links)
|
|
45
|
+
avoid provisioning a developer API key; execution still needs the collector's wallet. The Trading
|
|
46
|
+
API needs a developer key. Browser/build-time contract/SDK reads need RPC access; EVM-to-EVM
|
|
47
|
+
reads do not add an application RPC service. The [iframe embed](https://developers.uniswap.org/docs/trading/embed-app)
|
|
48
|
+
requires origin allowlisting; reserve it for companion apps, with their own availability expectations.
|
|
49
|
+
- **Before integrating:** select protocol version, chain, pool, and token addresses from the
|
|
50
|
+
[deployment sources](https://developers.uniswap.org/deployments). Check the exact tool's chain
|
|
51
|
+
support separately. Read-only pool data, swap execution, liquidity positions, and Uniswap v4 hooks
|
|
52
|
+
are distinct integrations; a Uniswap hook is not an ABX parameter hook.
|
|
53
|
+
|
|
54
|
+
## Art Blocks — existing projects and collector communities
|
|
55
|
+
|
|
56
|
+
- **Ideas:** discover related artists/projects or design a same-chain collector interaction using
|
|
57
|
+
verified contract state. Link to another work from a companion gallery; do not recommend a hosted
|
|
58
|
+
generator/media iframe as part of a permanent NFT's essential output. Discovery grants no reuse rights.
|
|
59
|
+
- **Official route:** use the [Art Blocks skills](https://docs.artblocks.io/developer/mcp-server/skills/)
|
|
60
|
+
and [MCP](https://docs.artblocks.io/developer/mcp-server/quick-start/) for project/token discovery
|
|
61
|
+
and query workflows. [Token, generator, and media APIs](https://docs.artblocks.io/developer/token-and-generator-apis/)
|
|
62
|
+
provide published read paths for research or optional companion displays.
|
|
63
|
+
- **Data:** **mixed**. Ownership and some token/script state are **on-chain**, varying by core;
|
|
64
|
+
inspect the [official core interfaces](https://docs.artblocks.io/developer/core-contract/).
|
|
65
|
+
API/MCP discovery, generated media, and computed traits are **off-chain** access paths. A published
|
|
66
|
+
live-view URL is an external service dependency, not preserved artwork or an EVM-readable input.
|
|
67
|
+
- **Footprint:** MCP uses OAuth/browser sign-in; do not assume an ABX Services login authorizes it.
|
|
68
|
+
Published token/view URLs can suit a companion display without adding an MCP connection. Verify
|
|
69
|
+
authentication and rate policy for the exact query/API route; do not promise unlimited access.
|
|
70
|
+
- **Before integrating:** carry chain, core address, project, and token identity. On a shared Art
|
|
71
|
+
Blocks core, collection-wide `balanceOf` is not a project-specific ownership check. Use the
|
|
72
|
+
official Art Blocks tooling for its contracts; ABX parameter/minter commands target ABX projects.
|
|
73
|
+
A holder gate on a different chain needs a separate proof design.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# ERC-20s and token creation
|
|
2
|
+
|
|
3
|
+
Use for token-informed ABX ideas, an existing token community, or a companion fungible token.
|
|
4
|
+
Official sources reviewed 2026-10-30. Recheck the selected chain, token identity, and tool/version.
|
|
5
|
+
These are discovery routes, not executed ABX integrations. Read only the relevant section.
|
|
6
|
+
|
|
7
|
+
## Existing tokens as creative inputs
|
|
8
|
+
|
|
9
|
+
The [ERC-20 standard](https://eips.ethereum.org/EIPS/eip-20) exposes **on-chain** balances, supply,
|
|
10
|
+
and allowances. Prefer a same-chain ABX augment hook or renderer turning a chosen wallet's balance
|
|
11
|
+
into visual variation, with bounded reads and self-contained fallback art. Use external-state
|
|
12
|
+
configure/transfer gates only for an intentional mechanic with lifecycle tests and failure semantics.
|
|
13
|
+
Specify whose balance matters: current NFT owner, configuring wallet, or a fixed community treasury.
|
|
14
|
+
For extension choices use [capabilities.md](../capabilities.md) and [code.md](../code.md).
|
|
15
|
+
|
|
16
|
+
| Token / chain scope | Official identity and tooling | Example on-chain input / boundary |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| USDC — Ethereum, Base, Arbitrum One; check each testnet separately | [Circle's contract directory](https://developers.circle.com/stablecoins/usdc-contract-addresses), then the token's verified ERC-20 interface | Treasury balance informs an artwork's density. Distinguish native USDC from bridged variants; reserve reports and redemption access are separate issuer/off-chain concerns. |
|
|
19
|
+
| ARB — Arbitrum One; verify other deployments separately | [Arbitrum Foundation deployment directory](https://docs.arbitrum.foundation/deployment-addresses), then the verified token interface | A holder's balance selects a palette. ERC-20 balance alone does not establish delegated voting power or governance participation. |
|
|
20
|
+
| AERO — Base | [Aerodrome's official contracts and ABIs](https://github.com/aerodrome-finance/contracts) | Treasury or owner balance drives visual variation. AERO and veAERO positions are different assets/interfaces; do not infer locked voting power from an ERC-20 balance. |
|
|
21
|
+
|
|
22
|
+
Use official deployment directories and interfaces rather than symbols, token search rankings, or
|
|
23
|
+
copied addresses. Direct reads need RPC for a browser/build tool; same-chain contract-to-contract
|
|
24
|
+
reads need no API account. An **off-chain** token search, price feed, portfolio API, or holder index
|
|
25
|
+
is a different route, even when its source is contract state. Keep it in discovery or a companion
|
|
26
|
+
app by default. Do not fetch a token's hosted logo/price/portfolio API from a permanent NFT's live
|
|
27
|
+
view; prefer verified numeric contract reads or actual captured on-chain bytes. An essential service
|
|
28
|
+
requires the explicit lifetime commitment and recovery design in [durability.md](durability.md).
|
|
29
|
+
|
|
30
|
+
`name`, `symbol`, and `decimals` are optional in ERC-20. Normalize units from the actual token and
|
|
31
|
+
avoid unbounded holder enumeration. A current balance is temporary, not proof of sustained ownership;
|
|
32
|
+
pool prices, valuations, and eligibility rules need their own trust/manipulation assessment.
|
|
33
|
+
Inspect token upgrade/admin/pause powers; an on-chain token is not necessarily immutable. Rendering
|
|
34
|
+
fallbacks should keep the NFT usable if reads fail. A gate's fallback must preserve its intended rule.
|
|
35
|
+
|
|
36
|
+
## Companion token creation — Clanker as one starting reference
|
|
37
|
+
|
|
38
|
+
ABX creates its NFT collections; fungible token launch and management belong to a separate protocol.
|
|
39
|
+
[Clanker's official SDK](https://github.com/clanker-devco/clanker-sdk) and
|
|
40
|
+
[official agent skill](https://github.com/clanker-devco/clanker-sdk/blob/main/.cursor/skills/use-clanker-sdk/SKILL.md)
|
|
41
|
+
provide one reusable route for creation, liquidity, and post-launch operations. Prefer these over
|
|
42
|
+
building a token launcher, pool deployer, or reward client. This is a starting option, not a required
|
|
43
|
+
provider: a creator/agent may choose another protocol using the same verification criteria.
|
|
44
|
+
|
|
45
|
+
- **Coverage:** the official skill lists Ethereum, Base, Arbitrum One, and Base Sepolia among its
|
|
46
|
+
networks. Verify the installed SDK version and actual protocol deployments for the chosen chain;
|
|
47
|
+
this does not establish availability on every ABX chain or paired testnet.
|
|
48
|
+
- **Data and ideas:** the resulting ERC-20 and pool state are **on-chain** inputs for same-chain
|
|
49
|
+
ABX art or intentional eligibility. Hosted discovery/media are **off-chain**; keep the NFT's
|
|
50
|
+
output independent of the launch website, SDK, and token image host. A companion token balance can
|
|
51
|
+
affect art without giving the NFT permission to trade or claim rewards.
|
|
52
|
+
- **Setup:** the direct SDK flow uses RPC and a wallet client, with gas/funding and transaction
|
|
53
|
+
authority. It does not document a separate Clanker account/API key for that route. Hosted APIs,
|
|
54
|
+
social login, and optional services have separate requirements; consult the
|
|
55
|
+
[current official docs](https://docs.clanker.world). Reuse existing suitable connections and signer;
|
|
56
|
+
never export an ABX-managed key to satisfy a third-party example.
|
|
57
|
+
- **Before launch:** verify admin/recipient roles, allocations, liquidity/fees, costs, and required
|
|
58
|
+
metadata or distribution hosting. Use the chosen official tool's simulation/preview and explicit
|
|
59
|
+
transaction review. No companion-token deployment, approval, or funding is implied by ideation.
|
|
60
|
+
|
|
61
|
+
For a proposal, record the token's chain and official identity, input field and provenance, ABX seam,
|
|
62
|
+
live versus captured behavior, resilience, new accounts/credentials, and runtime dependencies. Keep
|
|
63
|
+
token launch and ABX NFT deployment as separately reviewed operations, using each protocol's official tools.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Ecosystem discovery and integration planning
|
|
2
|
+
|
|
3
|
+
Use this reference when a creator wants ideas involving existing protocols, communities, or tools.
|
|
4
|
+
For public context, see [Ecosystem integrations](https://docs.abx.io/docs/using-abx/guides/ecosystem-integrations).
|
|
5
|
+
These are discovery routes, not tested ABX adapters or a promise of third-party compatibility.
|
|
6
|
+
|
|
7
|
+
## Load by chain set and intent
|
|
8
|
+
|
|
9
|
+
Read the selected chain's context, then only the topic/provider relevant to the idea. Shared
|
|
10
|
+
providers are described once; chain notes add local context rather than copying their instructions.
|
|
11
|
+
|
|
12
|
+
| Requested network | References |
|
|
13
|
+
|---|---|
|
|
14
|
+
| Ethereum (`1`) | [Ethereum context](ecosystem/chains/ethereum.md) |
|
|
15
|
+
| Sepolia (`11155111`) | [Sepolia context](ecosystem/chains/sepolia.md) |
|
|
16
|
+
| Base (`8453`) | [Base context](ecosystem/chains/base.md) |
|
|
17
|
+
| Base Sepolia (`84532`) | [Base Sepolia context](ecosystem/chains/base-sepolia.md) |
|
|
18
|
+
| Arbitrum One (`42161`) | [Arbitrum context](ecosystem/chains/arbitrum.md) |
|
|
19
|
+
| Arbitrum Sepolia (`421614`) | [Arbitrum Sepolia context](ecosystem/chains/arbitrum-sepolia.md) |
|
|
20
|
+
| Robinhood Chain (`4663`) | [Robinhood context](ecosystem/chains/robinhood.md) |
|
|
21
|
+
| Robinhood Chain Testnet (`46630`) | [Robinhood testnet context](ecosystem/chains/robinhood-testnet.md) |
|
|
22
|
+
|
|
23
|
+
Topic routes: [multichain integrations](ecosystem/multichain.md) cover marketplaces, liquidity, and
|
|
24
|
+
existing generative art; [ERC-20s and token creation](ecosystem/tokens.md) cover specific tokens and
|
|
25
|
+
an external launch protocol. These examples are non-exhaustive starting points, not an allowlist or
|
|
26
|
+
provider ranking. Explore protocols beyond this catalog that fit the creator's theme, community, or
|
|
27
|
+
distinctive mechanics. Evaluate their actual on-chain data, semantics, reliability, official tools,
|
|
28
|
+
and setup/runtime costs; explain why each input belongs in this particular project. An unlisted
|
|
29
|
+
provider is unresearched here, not unsupported. Verify new candidates against official sources and
|
|
30
|
+
the same durability criteria. Read `abx capabilities --json` for current ABX network eligibility;
|
|
31
|
+
third-party coverage does not enable an ABX network or sponsorship lane.
|
|
32
|
+
|
|
33
|
+
## Turn an idea into a bounded plan
|
|
34
|
+
|
|
35
|
+
1. Apply the [durability guidance](ecosystem/durability.md) to the object's intended behavior and
|
|
36
|
+
lifespan. Keep discovery/build tools separate from the finished NFT's dependencies.
|
|
37
|
+
Start from the project's theme, audience, and distinctive mechanic. Explain how each proposed
|
|
38
|
+
input supports that concept; do not force a familiar token, provider, or financial theme into an
|
|
39
|
+
unrelated work. Keep ideation separate from account creation or transaction execution.
|
|
40
|
+
2. Check available connections and project dependencies through their supported discovery/status
|
|
41
|
+
surfaces. Reuse suitable existing tooling and accounts. Do not inspect credential files to make
|
|
42
|
+
this inventory.
|
|
43
|
+
3. Prefer the provider's official skill, MCP, CLI, SDK, API, or contract interfaces for its part of the
|
|
44
|
+
workflow. Link to current installation/authentication instructions instead of copying them here.
|
|
45
|
+
Add only the project-specific glue; do not rebuild an existing client, router, indexer, or signer.
|
|
46
|
+
4. Before implementation, check the ABX part using [capabilities.md](capabilities.md). An external
|
|
47
|
+
API read or marketplace order is not an ABX command. Keep ABX operations in its CLI and provider
|
|
48
|
+
operations in official tools; do not let a third-party deploy flow replace the chosen ABX collection.
|
|
49
|
+
5. Before implementation, verify the specific chain, contract/version, token or project identity,
|
|
50
|
+
current tool support, and the read/write authority. Testnet availability, liquidity, and datasets
|
|
51
|
+
need separate evidence. A documentation review is not an executed integration test.
|
|
52
|
+
|
|
53
|
+
## Input provenance and ABX execution
|
|
54
|
+
|
|
55
|
+
Label each proposed input **on-chain**, **off-chain**, or **mixed**, including the actual access path.
|
|
56
|
+
|
|
57
|
+
| Input route | Where it can drive ABX behavior |
|
|
58
|
+
|---|---|
|
|
59
|
+
| On-chain, same-chain contract read | Can inform contract actions, state rules, eligibility, or renderer/augment output. Configure/transfer hooks need deliberate failure semantics and lifecycle tests; a display input should not block transfers |
|
|
60
|
+
| Off-chain API/indexer, even if sourced from contracts | Discovery/build tooling or an optional companion app. Prefer capturing the actual bounded input on-chain over putting HTTP calls in the NFT's live view |
|
|
61
|
+
| Mixed: on-chain state plus hosted metadata/media | Separate the durable NFT output from hosted enrichment. Any essential service is a lifetime dependency requiring explicit creator choice and the recovery design below |
|
|
62
|
+
|
|
63
|
+
Specify the contract and field, or API and timestamp, plus whether the input is live or captured.
|
|
64
|
+
For contract integrations use official interfaces, bounded reads, and purpose-appropriate failure handling.
|
|
65
|
+
Do not assume a renderer's `msg.sender` is the NFT owner. A mutable external read can affect hook
|
|
66
|
+
liveness as well as output; inspect upgrade/pause powers. A browser's hardcoded RPC fetch is still a
|
|
67
|
+
network dependency; prefer computing the input in the EVM. A pool spot value alone is not a
|
|
68
|
+
manipulation-resistant price oracle.
|
|
69
|
+
|
|
70
|
+
## Account and dependency footprint
|
|
71
|
+
|
|
72
|
+
For each proposed route, include a short row in the creator's plan:
|
|
73
|
+
|
|
74
|
+
| Route | Setup delta | Authority and cost | Runtime dependency / exit |
|
|
75
|
+
|---|---|---|---|
|
|
76
|
+
| Provider + official tool + exact chain | Reuse existing connection, no signup, new account, API key, OAuth, RPC, or unknown | Reads versus signatures/approvals; fees, limits, expiry, and renewal to verify | Build-time, optional companion, or lifetime NFT dependency; responsible owner, replacement controls, and behavior if it disappears |
|
|
77
|
+
|
|
78
|
+
Count accounts, credentials, and hosted dependencies separately. A signup-free key still needs
|
|
79
|
+
storage and renewal; an account-free HTTP endpoint is still an availability dependency. Distinguish
|
|
80
|
+
creator setup from what every collector must do. Prefer the least setup that meets the actual goal,
|
|
81
|
+
not an account-free route that recreates the provider's service or hides extra maintenance.
|
|
82
|
+
|
|
83
|
+
Use public docs, interfaces, or a local fixture for early comparison. Introduce a new connection,
|
|
84
|
+
credential, paid plan, or wallet permission only when the chosen workflow needs it and the creator's
|
|
85
|
+
authorization covers it. Record credential references and expiry, never secret values, in handoffs.
|
|
86
|
+
|
|
87
|
+
## Integration boundaries to resolve
|
|
88
|
+
|
|
89
|
+
- **Live or captured:** do not recommend HTTP-dependent NFT live views by default. Prefer EVM reads
|
|
90
|
+
or actual input bytes captured on-chain; a URL/hash alone does not preserve them. Required external
|
|
91
|
+
APIs need explicit lifetime-dependency disclosure and owner-controlled replacement plus a tested
|
|
92
|
+
fallback, as described in [durability.md](ecosystem/durability.md). Read [code.md](code.md) for lanes.
|
|
93
|
+
- **Source chain:** a contract cannot directly read another chain's NFT ownership. Multichain
|
|
94
|
+
APIs can assist discovery but do not supply a trustless cross-chain proof or shared state.
|
|
95
|
+
- **Compatibility:** marketplace indexing, royalties, signed listings, transfer validators, and
|
|
96
|
+
lending eligibility are separate checks. Read [creator-token.md](creator-token.md) when relevant.
|
|
97
|
+
- **Writes:** a quote, unsigned transaction, or tool connection is not approval to trade, approve a
|
|
98
|
+
spender, lend, bridge, or deploy. Keep the existing ABX confirmation and reconciliation rules.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Project ideation
|
|
2
|
+
|
|
3
|
+
Start with what the object means and does, who participates, and why they would care. Explore its
|
|
4
|
+
data, changing state, participant roles, rules, and relationships with other systems before choosing
|
|
5
|
+
its appearance or deployment family. Artwork is one possibility; follow the creator's intent.
|
|
6
|
+
|
|
7
|
+
For example, consider a shared resource with contribution rules, a record of provenance or claims,
|
|
8
|
+
a liquidity position with community-defined interactions, or a charter connected to an externally
|
|
9
|
+
launched ERC-20. An object can represent rights or a financial instrument, but real-world rights,
|
|
10
|
+
custody, and enforcement need their own design. These are starting points, not a checklist or
|
|
11
|
+
promises of ready-made ABX features. Explore beyond them and beyond the documented protocols.
|
|
12
|
+
|
|
13
|
+
Think in actions as well as data: a governed parameter edit or token transfer can trigger custom
|
|
14
|
+
on-chain logic to swap through an AMM, create another asset, or settle an obligation. Configure and
|
|
15
|
+
transfer hooks can make contract calls using explicitly arranged funding and authority; augment
|
|
16
|
+
hooks only derive data during reads. These actions need not serve a visual outcome.
|
|
17
|
+
|
|
18
|
+
Discuss the core interaction and value in plain language. Consider what changes, who may change it,
|
|
19
|
+
and what happens when a participant or dependency disappears. On-chain, off-chain, and hybrid
|
|
20
|
+
designs are all possible; choose deliberately for the intended lifespan, trust, and behavior.
|
|
21
|
+
Durability need not mean frozen state. Use [ecosystem.md](ecosystem.md) for relevant integrations,
|
|
22
|
+
favoring official third-party tools rather than rebuilding them.
|
|
23
|
+
|
|
24
|
+
Keep exploration separate from implementation. Research and compare concepts until the creator
|
|
25
|
+
chooses a direction and asks to implement it; do not start code, create repositories or cloud
|
|
26
|
+
resources, or deploy during ideation. Future launch intent or available accounts and wallets do
|
|
27
|
+
not select an idea. An explicit request to implement a chosen concept already establishes that
|
|
28
|
+
direction; do not ask for it again. Resolve technical feasibility through
|
|
29
|
+
[capabilities.md](capabilities.md) before making implementation promises.
|
|
@@ -156,6 +156,8 @@ provider does not advertise the chain, the account is ineligible, or the transac
|
|
|
156
156
|
policy, select one of those lanes rather than refusing the underlying operation. Do not use
|
|
157
157
|
sponsorship on a production network unless the live descriptor, account capabilities, and command
|
|
158
158
|
all explicitly support it. Never infer eligibility merely because the CLI recognizes the lane.
|
|
159
|
+
During a network rollout, the descriptor may advertise a chain before every account is entitled.
|
|
160
|
+
Check account capabilities too; a test-account grant does not establish general availability.
|
|
159
161
|
|
|
160
162
|
## Feedback targets
|
|
161
163
|
|