ワンクリックで
coin-modules
Rules and layout for coin module packages under libs/coin-modules/. Read when adding or modifying a coin module.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Rules and layout for coin module packages under libs/coin-modules/. Read when adding or modifying a coin module.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Enforce import boundaries inside the devtools scope. Use for any work in "devtools/**".
Official Ledger wallet-cli - USB-based CLI for Ledger hardware wallet flows (account discover, receive, balances, operations, send, swap quote/execute/status, genuine-check, assets token / token-by-id). Use for any wallet-cli command execution and for mapping informal requests to the right command.
Handle batches of Jira tickets through shared analysis, per-ticket feature-dev, Lumen UI guardrails, changesets, and draft PRs. Use when the user provides multiple Jira tickets or asks to deliver tickets one by one with PRs.
Trigger the on-demand production build workflows on LedgerHQ/ledger-live-build (Desktop, Android APK, iOS) for a ledger-live branch, then post a PR comment. Use when asked to "run builds", "produce a build", "build the app(s)", or "make an APK/iOS/desktop build" for a PR/branch.
Guided feature development with codebase understanding and architecture focus
Dead-code / unused-dependency detection is migrating from the legacy `unimported` tool to `knip`, which requires each package to expose an explicit, minimal `package.json#exports` (no `./*` wildcard). Read this when adding a new package or migrating an existing one.
| name | coin-modules |
| description | Rules and layout for coin module packages under libs/coin-modules/. Read when adding or modifying a coin module. |
Each blockchain family lives in its own package under libs/coin-modules/coin-<family>.
Package name: @ledgerhq/coin-<family>
Do not create a new coin-module if it fits the ecosystem of an existing one.
No packages other than coin-modules are allowed in libs/coin-modules/.
| Directory / file | Purpose |
|---|---|
api/ | Coin Module API surface — implements CoinModuleApi from @ledgerhq/coin-module-framework/api/index; restricted imports apply (see below) |
logic/ | Core blockchain logic, agnostic of Bridge or API; only depends on network/ and external libs; restricted imports apply (see below) |
network/ | Communication with explorer / indexer / node; restricted imports apply (see below) |
types/ | Model definitions, not related to network |
bridge/ (legacy) | CurrencyBridge + AccountBridge implementation |
signer/ (legacy) | Hardware wallet signer interface and device address resolver |
Tests: *.unit.test.ts (co-located), *.test.ts (integration, no network), *.integ.test.ts (real network, separate jest.integ.config.js).
Prefer native dependencies from the blockchain foundation and well-established open-source libraries.
Avoid proprietary third-party SDKs or closed-source vendor packages.
In api/, logic/, and network/, the only permitted @ledgerhq/* imports are @ledgerhq/errors, @ledgerhq/logs, @ledgerhq/live-network, and @ledgerhq/coin-module-framework (enforced by eslint/no-restricted-imports in libs/coin-modules/.oxlintrc.json). Other directories (bridge/, signer/, types/) have no such restriction.
1. Coin Module API path (preferred) — export createApi(config, currencyId) returning CoinModuleApi (from @ledgerhq/coin-module-framework/api/index). Enable the family in libs/ledger-live-common/src/bridge/generic-coin-framework/genericCoinFrameworkFamilies.json (checked by isGenericCoinFrameworkFamily). For methods that don't apply, throw new Error("<method> is not supported").
2. Classic JS Bridge (legacy, do not use) — export createBridges(signerContext, coinConfig) returning { currencyBridge, accountBridge }. Wired via libs/ledger-live-common/src/families/<family>/setup.ts.
craftTransaction / estimateFees: cover each transaction type (token transfer, native, memo, delegation, …)getBalance / listOperations: cover each asset type in the modulegetBlockInfo / getBlock / listOperations / getStakes: compare against a reference block/op/stake to validate metadata parsinggetValidators: validate metadata against a reference validatorlastBlock: block height > 0, valid date, hash with expected lengthgetNextSequence: higher than current nonce for a known accountIn libs/ledger-live-common/src, runtime imports of coin-specific code (from @ledgerhq/coin-* or ../families/*) are only allowed inside src/coin-modules/ and src/families/. All other shared code must access coin-specific behaviour through coinModuleLoaders from src/coin-modules/loaders.ts.