All commands support --agent and emit exactly one JSON object to stdout.
For full contract details (typing, compatibility, and command policy), see COMMAND_CONTRACT_V1.md.
For task-oriented command examples (human + agent), see USAGE.md.
Success:
{
"ok": true,
"schema_version": "1.0",
"command": "wallet info",
"...": "command-specific fields"
}Error:
{
"ok": false,
"schema_version": "1.0",
"command": "wallet info",
"error": {
"type": "invalid|config|auth|network|insufficient_funds|policy|not_found|internal",
"message": "human-readable",
"exit_code": 1
}
}wallet init:profile,network,scheme,account_index,phrasephraseis hidden unless--revealis setwordsappears only when--revealis set
wallet import:profile,network,scheme,account_index,importedphraseappears only when--revealis set
wallet info:profile,version,network,scheme,account_index,esplora_url,ord_url,bitcoin_cli,bitcoin_cli_args,has_persistence,has_inscriptions,updated_at_unix
sync chain:events(array of sync event strings)
sync ordinals:inscriptions(count)
balance:total,spendable(both withimmature,trusted_pending,untrusted_pending,confirmed),inscribed_sats
tx list:transactions(array of tx objects fromzinc-core)
psbt create:psbt(base64)
psbt analyze:analysis(object from Ordinal Shield analyzer)
psbt sign:psbt(base64 signed PSBT)
psbt broadcast:txid
Input modes for analyze|sign|broadcast:
--psbt <base64>--psbt-file <path>--psbt-stdin(reads raw base64 PSBT from stdin)
Exactly one PSBT input mode is required.
Optional output files:
psbt create --out-file <path>psbt sign --out-file <path>
offer create:inscriptionask_satsfee_rate_sat_vbseller_addressseller_outpointseller_pubkey_hexexpires_at_unixthumbnail_lines(optional)hide_inscription_idsraw_response(canonical full response payload)
offer publish:event_idaccepted_relays(count)total_relays(count)publish_results(per-relay acceptance/message rows)raw_response
offer discover:event_countoffer_countoffersthumbnail_lines(optional)hide_inscription_idsraw_response
offer submit-ord:ord_urlsubmitted(bool)raw_response
offer list-ord:ord_urlcountoffersraw_response
offer accept:inscriptionask_satstxiddry_run(bool)inscription_riskthumbnail_lines(optional)hide_inscription_idsraw_response
Input modes and rules:
- For
offer publish, exactly one of:--offer-json <json>--offer-file <path>--offer-stdin(reads offer JSON from stdin)
- For
offer accept, exactly one of:--offer-json <json>--offer-file <path>--offer-stdin(reads offer JSON from stdin)
- For
offer submit-ord, exactly one of:--psbt <base64>--psbt-file <path>--psbt-stdin(reads base64 PSBT from stdin)
offer createrequires ord indexer metadata (--ord-url) for the target inscription.offer createaccepts optional--seller-payout-addressto override payout destination output.offer createaccepts optional--publisher-pubkey-hexto override the embedded envelope publisher key.offer publishandoffer discoverrequire at least one--relay.
account list:accountsaccount use:previous_account_index,account_index,taproot_address,payment_address?wait tx-confirmed:txid,confirmation_time,confirmed,waited_secswait balance:confirmed,confirmed_balance,target,waited_secssnapshot save:snapshotsnapshot restore:restoredsnapshot list:snapshotslock info:profile,lock_path,locked,owner_pid,created_at_unix,age_secslock clear:profile,lock_path,cleared
scenario mine:blocks,address,raw_outputscenario fund:address,amount_btc,txid,mine_blocks,mine_address,generated_blocksscenario reset:removed(paths)
doctor:healthyesplora_urlesplora_reachableord_urlord_reachableord_indexing_heightord_error