Skip to content

CLI Reference

The @chaindaddy/cli package provides a command-line interface for managing token registrations and publishing Crown Apps. Manage wallets, discover reclaimable registrations, create tokens, check heartbeat health, export listing data, and drive the full app build → sign → submit pipeline from your terminal.

Installation

bash
npm install -g @chaindaddy/cli

Requires Node.js 18+.

Global Options

FlagDescription
--jsonOutput as JSON (machine-readable, no colors). Honored when set on any parent command
--non-interactiveNever prompt; fail when required input is missing (for CI and agents)
--versionDisplay CLI version
--helpDisplay help for any command

Environment variables: CROWN_API_KEY (a cd_live_… API key) authenticates API calls non-interactively; CROWN_DEV_TOKEN overrides the stored developer credential.

Commands

wallet

Manage the local wallet keystore used for signing transactions.

bash
# Create a new wallet keypair (add --solana for a Solana keypair too)
chaindaddy wallet init

# Import an existing private key or mnemonic
chaindaddy wallet import

# Import a Solana keypair (base58 secret key)
chaindaddy wallet import --solana

# Register a Ledger hardware wallet
chaindaddy wallet add-hardware --path "44'/60'/0'/0/0"

# List stored wallet addresses
chaindaddy wallet list

Wallets are encrypted and stored locally. Hardware wallet entries store only the derivation path and address.

discover

Find inactive registrations available to reclaim.

bash
# List inactive registrations
chaindaddy discover

# Filter by chain
chaindaddy discover --chain arbitrum

# Filter by symbol
chaindaddy discover --symbol DOGE

# Filter by minimum market cap
chaindaddy discover --min-mcap 10000

# Limit results
chaindaddy discover --limit 20
OptionDescription
--inactiveShow inactive registrations (default behavior)
--chain <chain>Filter by chain identifier
--symbol <symbol>Filter by symbol name
--min-mcap <amount>Minimum market cap in USD
--limit <n>Max results (default: 50)

reclaim

Reclaim an inactive registration.

bash
chaindaddy reclaim <crown_id>
OptionDescription
--wallet <address>Wallet address to use
--yesSkip confirmation
--dry-runSimulate without broadcasting transactions

Guides you through wallet selection, fee confirmation, and transaction submission.

status

View heartbeat health of registrations — a single token, everything a wallet owns, or an at-risk scan.

bash
# Single token
chaindaddy status --symbol DOGE --chain arbitrum

# Resolve a registration id, then show its heartbeat
chaindaddy status --crown <crown_id>

# Every registration a wallet owns, with heartbeat
chaindaddy status --wallet 0x1234...

# List at-risk / inactive registrations
chaindaddy status --at-risk --limit 100
OptionDescription
--symbol <symbol>Token symbol (use with --chain)
--chain <chain>Chain key, e.g. arbitrum (required with --symbol)
--crown <id>Registration/token id to resolve, then show heartbeat
--wallet <address>Show every registration a wallet owns
--at-riskList registrations that are at-risk or inactive
--limit <n>Max ids to scan with --at-risk (default: 100)

estimate

Get pricing estimates for token creation and registration claiming.

bash
# Estimate for a single chain
chaindaddy estimate --symbol DOGE --chains arbitrum

# Estimate for multiple chains
chaindaddy estimate --chains arbitrum,solana,base

# Estimate with bundle pricing
chaindaddy estimate --bundle multi-chain-3
OptionDescription
--symbol <symbol>Token symbol
--chains <chains>Target chains, comma-separated (default: arbitrum)
--bundle <type>Bundle type: multi-chain-3, multi-chain-5, all-chain
--wallet <address>Wallet address for the fee check

create

Create a new token and mint its registration — interactive wizard, or fully flag-driven for scripting.

bash
# Interactive wizard
chaindaddy create

# Non-interactive
chaindaddy create --symbol MTK --name "My Token" --chains arbitrum,base \
  --supply 1000000000 --decimals 18 --mintable --yes

# Batch mode from a JSON spec file
chaindaddy create --batch tokens.json
OptionDescription
--symbol <symbol> / --name <name>Token symbol and name (skip prompts)
--chains <chains>Target chains, comma-separated
--supply <supply>Total supply (default: 1000000000)
--decimals <decimals>Decimals (default: 18)
--mintable / --burnableToken features
--wallet <address>Wallet address to use
--yesSkip confirmation (required for non-interactive)
--dry-runSimulate without broadcasting transactions
--batch <file>Read token specs from a JSON file

profile

Manage token page profiles.

bash
# Set or update profile fields
chaindaddy profile set --website https://example.com --twitter example \
  --description "The example token"

profile set options: --description, --category, --tags, --website, --twitter, --discord, --telegram, --logo.

A profile view subcommand exists but is not wired to the API yet — use the token page or chaindaddy status in the meantime.

listings

Prepare listing submissions for third-party aggregator platforms.

bash
# List supported platforms and their submission URLs
chaindaddy listings platforms

# Check how submission-ready a token is for a platform
chaindaddy listings readiness --symbol DOGE --platform cmc

# Build a submission template (real URL + field checklist)
chaindaddy listings export --symbol DOGE --platform coingecko --out ./doge-cg.json
OptionDescription
--symbol <symbol>Token symbol
--crown <id>Registration/token id to resolve to a symbol
--platform <id>Platform id: cmc, coingecko, dexscreener (default: cmc)
--out <file>Write the template JSON to a file instead of stdout (export only)

clone

Expand an existing token to additional chains.

bash
chaindaddy clone <symbol>
OptionDescription
--supply <supply> / --decimals <decimals>Override supply/decimals for new chains
--wallet <address>Wallet address
--yesSkip confirmation
--dry-runSimulate without broadcasting transactions

Shows current chain presence, available target chains, pricing breakdown, and handles the deployment transaction.

app

Build, sign, and submit Crown Apps (widgets and headless runners). See Developer Getting Started for the full walkthrough.

CommandDescription
app loginAuthenticate the CLI with a developer account (wallet challenge → API key)
app whoamiShow the active developer credentials
app key createCreate a new developer API key — returned exactly once
app key listList your API keys
app key rotate <keyId>Create a new key and schedule the old one for expiry in 24h
app key revoke <keyId>Immediately deactivate an API key
app init [template] [dir]Scaffold a new app project: widget, headless, or full
app validate [dir]Validate capp.json against the manifest schema
app build [dir]Bundle a widget with esbuild (ESM, external react/react-dom)
app scan [target]Run the platform security/size scanner on a bundle or .crown package
app pack [dir]Produce a .crown package from the manifest, bundle, and assets
app sign <package>Sign a .crown package with your developer API key (HMAC-SHA256)
app verify <package>Verify a .crown package: structure, hashes, and (with --check-signature) HMAC
app inspect <package>Show the contents and metadata of a .crown package
app submit <package>Upload a signed .crown package for review (--watch streams the scan log)
app status <submissionId>Get the current status of a submission
app logs <submissionId>Fetch or stream the scan log for a submission
app list [apps|submissions]List your apps or submissions
app request-publish <submissionId>Move a pending submission to the human-review queue
app tokensList tokens you have claimed (install targets for dev preview)
app install <appId>Install (enable) an app on one of your tokens for dev preview
app uninstall <appId>Uninstall (disable) an app from a token
app preview <appId>Print the URL to preview an installed app on a token page

Exit codes (stable, for agents and CI): 0 success, 1 user error, 2 system error, 3 validation failed, 4 auth error, 5 server error.

Quick Start

bash
# 1. Install
npm install -g @chaindaddy/cli

# 2. Create a wallet
chaindaddy wallet init

# 3. Find reclaimable symbols
chaindaddy discover --chain arbitrum

# 4. Estimate costs
chaindaddy estimate --symbol DOGE --chains arbitrum

# 5. Create a token
chaindaddy create

JSON Output

All commands support --json for scripting and automation:

bash
# Get machine-readable output
chaindaddy status --wallet 0x1234... --json | jq '.'

# Use in scripts
EXPIRED=$(chaindaddy discover --chain arbitrum --json | jq -r '.crowns[0].crown_id')
chaindaddy reclaim "$EXPIRED" --yes