@artblocks/abx-cli 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/ansi.d.ts +24 -0
  3. package/dist/ansi.d.ts.map +1 -0
  4. package/dist/ansi.js +28 -0
  5. package/dist/ansi.js.map +1 -0
  6. package/dist/commands/deploy.d.ts.map +1 -1
  7. package/dist/commands/deploy.js +10 -16
  8. package/dist/commands/deploy.js.map +1 -1
  9. package/dist/commands/project.d.ts.map +1 -1
  10. package/dist/commands/project.js +4 -3
  11. package/dist/commands/project.js.map +1 -1
  12. package/dist/main.js +4 -4
  13. package/dist/main.js.map +1 -1
  14. package/dist/output.d.ts +5 -4
  15. package/dist/output.d.ts.map +1 -1
  16. package/dist/output.js +6 -8
  17. package/dist/output.js.map +1 -1
  18. package/dist/ownerops.d.ts +6 -0
  19. package/dist/ownerops.d.ts.map +1 -1
  20. package/dist/ownerops.js +28 -12
  21. package/dist/ownerops.js.map +1 -1
  22. package/dist/riskgate.d.ts.map +1 -1
  23. package/dist/riskgate.js +3 -5
  24. package/dist/riskgate.js.map +1 -1
  25. package/dist/signer.d.ts.map +1 -1
  26. package/dist/signer.js +1 -6
  27. package/dist/signer.js.map +1 -1
  28. package/package.json +2 -2
  29. package/skill/SKILL.md +15 -6
  30. package/skill/reference/capabilities.md +24 -11
  31. package/skill/reference/code.md +11 -4
  32. package/skill/reference/ecosystem/chains/arbitrum-sepolia.md +11 -0
  33. package/skill/reference/ecosystem/chains/arbitrum.md +55 -0
  34. package/skill/reference/ecosystem/chains/base-sepolia.md +11 -0
  35. package/skill/reference/ecosystem/chains/base.md +10 -0
  36. package/skill/reference/ecosystem/chains/ethereum.md +10 -0
  37. package/skill/reference/ecosystem/chains/robinhood-testnet.md +11 -0
  38. package/skill/reference/ecosystem/chains/robinhood.md +11 -0
  39. package/skill/reference/ecosystem/chains/sepolia.md +11 -0
  40. package/skill/reference/ecosystem/durability.md +70 -0
  41. package/skill/reference/ecosystem/multichain.md +73 -0
  42. package/skill/reference/ecosystem/tokens.md +63 -0
  43. package/skill/reference/ecosystem.md +98 -0
  44. package/skill/reference/ideation.md +29 -0
  45. package/skill/reference/setup.md +3 -1
@@ -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.
@@ -34,7 +34,9 @@ The shipped skill is named `abx`. `abx skill install` installs it to `.claude/sk
34
34
  the rename transition the installer moves a recognized `abx-self-host` folder to
35
35
  `.abx-skill-backups/` before installing the new name. It preserves custom bytes rather than deleting
36
36
  them. For a custom skills parent, run `abx skill install --target <that-parent>`; do not move or merge
37
- the old folder manually. Restart the agent after installation.
37
+ the old folder manually. Restart the agent after installation. If this is a one-shot session that
38
+ cannot restart, run `abx skill path`, open the printed `SKILL.md` directly, and follow it for the
39
+ current run; the installed copy becomes automatic in the next session.
38
40
 
39
41
  ABX requires Node 22.13 or newer. Prefer a project-local npm dependency for reproducible automation;
40
42
  use a global install for interactive machine-wide use. Avoid repeated `npx` execution when version