Sign transaction
Asks device to sign given inputs and outputs of pre-composed transaction. User is asked to confirm all transaction details on Trezor.
const result = await TrezorConnect.signTransaction(params);
Params
coin
- requiredstring
Determines network definition specified in coins.json file. Coin
shortcut
,name
orlabel
can be used. See supported coinsinputs
- requiredArray
of PROTO.TxInputType,outputs
- requiredArray
of PROTO.TxOutputType,paymentRequests
- optionalArray
of PROTO.TxAckPaymentRequest. See SLIP-24refTxs
- optionalArray
of RefTransaction.If you don't want to use build-in
blockbook
backend you can optionally provide those data from your own backend transformed toTrezor
format. Since Firmware 2.3.0/1.9.0 referenced transactions are required. Zcash and Komodo refTxs should also containsexpiry
,version_group_id
andextra_data
fields.locktime
- optionalnumber
,version
- optionalnumber
transaction version,expiry
- optionalnumber
, only for Decred and Zcash,versionGroupId
- optionalnumber
only for Zcash, nVersionGroupId when overwintered is set,overwintered
- optionalboolean
only for Zcashtimestamp
- optionalnumber
only for Capricoin, transaction timestamp,branchId
- optionalnumber
, only for Zcash, BRANCH_ID when overwintered is setpush
- optionalboolean
Broadcast signed transaction to blockchain. Default is set to falseamountUnit
— optionalPROTO.AmountUnit
show amounts in BTC, mBTC, uBTC, sat
unlockPath
- optional PROTO.UnlockPath, the result of TrezorConnect.unlockPath method.serialize
- optionalboolean
, defaulttrue
serialize the full transaction, as opposed to only outputting the signatureschunkify
— optionalboolean
determines if recipient address will be displayed in chunks of 4 characters. Default is set tofalse
Example
PAYTOADDRESS
TrezorConnect.signTransaction({
inputs: [
{
address_n: [
(44 | 0x80000000) >>> 0,
(0 | 0x80000000) >>> 0,
(2 | 0x80000000) >>> 0,
1,
0,
],
prev_index: 0,
prev_hash: 'b035d89d4543ce5713c553d69431698116a822c57c03ddacf3f04b763d1999ac',
amount: 3431747,
},
],
outputs: [
{
address_n: [
(44 | 0x80000000) >>> 0,
(0 | 0x80000000) >>> 0,
(2 | 0x80000000) >>> 0,
1,
1,
],
amount: 3181747,
script_type: 'PAYTOADDRESS',
},
{
address: '18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2',
amount: 200000,
script_type: 'PAYTOADDRESS',
},
],
coin: 'btc',
});
SPENDP2SHWITNESS
TrezorConnect.signTransaction({
inputs: [
{
address_n: [
(49 | 0x80000000) >>> 0,
(0 | 0x80000000) >>> 0,
(2 | 0x80000000) >>> 0,
1,
0,
],
prev_index: 0,
prev_hash: 'b035d89d4543ce5713c553d69431698116a822c57c03ddacf3f04b763d1999ac',
amount: 3431747,
script_type: 'SPENDP2SHWITNESS',
},
],
outputs: [
{
address_n: [
(49 | 0x80000000) >>> 0,
(0 | 0x80000000) >>> 0,
(2 | 0x80000000) >>> 0,
1,
1,
],
amount: 3181747,
script_type: 'PAYTOP2SHWITNESS',
},
{
address: '18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2',
amount: 200000,
script_type: 'PAYTOADDRESS',
},
],
coin: 'btc',
});
PAYTOADDRESS with refTxs (transaction data provided from custom backend)
TrezorConnect.signTransaction({
inputs: [
{
address_n: [
(44 | 0x80000000) >>> 0,
(0 | 0x80000000) >>> 0,
(2 | 0x80000000) >>> 0,
1,
0,
],
prev_index: 0,
prev_hash: 'b035d89d4543ce5713c553d69431698116a822c57c03ddacf3f04b763d1999ac',
amount: 3431747,
},
],
outputs: [
{
address_n: [
(44 | 0x80000000) >>> 0,
(0 | 0x80000000) >>> 0,
(2 | 0x80000000) >>> 0,
1,
1,
],
amount: 3181747,
script_type: 'PAYTOADDRESS',
},
{
address: '18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2',
amount: 200000,
script_type: 'PAYTOADDRESS',
},
],
refTxs: [
{
hash: 'b035d89d4543ce5713c553d69431698116a822c57c03ddacf3f04b763d1999ac',
inputs: [
{
prev_hash: '448946a44f1ef514601ccf9b22cc3e638c69ea3900b67b87517ea673eb0293dc',
prev_index: 0,
script_sig:
'47304402202872cb8459eed053dcec0f353c7e293611fe77615862bfadb4d35a5d8807a4cf022015057aa0aaf72ab342b5f8939f86f193ad87b539931911a72e77148a1233e022012103f66bbe3c721f119bb4b8a1e6c1832b98f2cf625d9f59242008411dd92aab8d94',
sequence: 4294967295,
},
],
bin_outputs: [
{
amount: 3431747,
script_pubkey: '76a91441352a84436847a7b660d5e76518f6ebb718dedc88ac',
},
{
amount: 10000,
script_pubkey: '76a9141403b451c79d34e6a7f6e36806683308085467ac88ac',
},
],
lock_time: 0,
version: 1,
},
],
coin: 'btc',
});
Result
{
success: true,
payload: {
signatures: Array<string>, // Array of signer signatures
serializedTx: string, // serialized transaction
txid?: string, // broadcasted transaction id
}
}
Error
{
success: false,
payload: {
error: string // error message
}
}