Command line utility written in NodeJS for creating and signing Stacks multisig transactions with a Ledger device
You will need to have nodejs
and npm
installed.
After cloning the repository, go to the project root and run:
npm install
npm start -- <subcommand> [args]
Subcommand | Description |
---|---|
get_pub <path> |
Get public key from Ledger |
make_multi |
Make multisig address from pubkeys |
check_multi |
Check multisig addresses derived from pubkeys |
create_tx |
Create unsigned multisig transaction |
sign |
Sign multisig transaction with Ledger |
decode |
Decode and print Stacks base64-encoded transaction |
broadcast |
Broadcast a transaction to the network |
Flags | Subcommands | Description |
---|---|---|
--json-inputs <path> |
create_tx |
Read transaction inputs from JSON file |
--csv-inputs <path> |
create_tx |
Read transaction inputs from a CSV file |
--json-txs <path> |
sign , broadcast |
Allow bulk operations by reading JSON array from file |
--csv-keys <path> |
sign |
Sign using pubkeys/paths from a CSV file |
--out-file <path> |
create_tx , sign , broadcast |
Output JSON directly to file |
--api-key <path> |
broadcast |
Use Hiro API key to allow for many transactions |
-
Get any Ledger public keys needed
npm start -- get_pub <path>
If you are unsure of what
path
to use to generate the pubkey for your account, trym/5757'/0'/0/0/0
orm/44'/5757'/0/0/0
-
Create a multisig address from pubkeys
npm start -- make_multi
-
Use any wallet to send funds to the address
While using this tool, inputs/outputs will be in base64-encoded JSON. You will need to copy/paste this between steps to manage application state.
-
Create a transaction
npm start -- create_tx
-
For each required signature, sign with Ledger
npm start -- sign
-
[Optional] Print transaction as JSON to check
npm start -- decode
-
Broadcast transaction
npm start -- broadcast
-
Create the transactions from a CSV file and save outputs to file
npm start -- create_tx --csv-inputs $CSV_INPUTS_FILE --out-file transactions.json
-
Sign the transactions and save outputs to file
npm start -- sign --json-txs transactions.json --csv-keys $CSV_KEYS_FILE --out-file signed_transactions.json
-
Broadcast transactions
npm start -- broadcast --json-txs signed_transactions.json --out-file broadcast_results.json
You will need Docker and just
(can be installed by cargo install just
)
just build
Run the same way you would run normally, but replace the npm start --
prefix with:
just run [args...]