New COLDCARD Release: Versions 5.3.2 (Mk4) and 1.2.2 (Q)

Powerful New Feature: NFC Push Tx

This is a release with a many small bugfixes and little enhancements… plus one major new feature: NFC Push Tx.

You can now simply tap your COLDCARD to your phone to broadcast the transaction without a computer or any new apps.

NFC Push Tx

Once enabled with a service provider’s URL, you can tap the COLDCARD and your phone will open a webpage which immediately transmits your freshly-signed transaction onto the blockchain.

See NFC Push Tx under Settings to enable and select a service provider, or your own webpage. Yes, you can provide your own backend for complete transaction privacy!

As of today, there are two public services supporting this feature: mempool.space and coldcard.com. Both of these options are shown in the settings menu in the COLDCARD firmware.

Coinkite is operating the Coldcard.com option, but your data does not touch our servers. Instead, your mobile browser is used to push the new transaction to two or more API services: blockstream.info and mempool.space (subject to change). After transmission, we offer links to number of block explorers where you can double-check the transaction is in the mempool and wait for confirmation.

We’ve published our JS code for this on github, including a pre-built single-file HTML bundle you can host on any webserver your phone can reach. Mempool’s code is also open here.

If you want to write your own service handler, the full specification is public and very simple. It’s just base64url and an SHA-256 checksum.

We’re happy to add new public service options into the firmware for everyone to use, just reach out to us if you are running a public service.

How It Works

After the new transaction is signed and finalized by the COLDCARD, normally we write it out to a file for your wallet to transmit over the Bitcoin P2P network so that it enters the mempool and ultimately gets into a block.

With NFC PushTX, instead the complete transaction is encoded into a single long web URL, and COLDCARD pretends to be an NFC tag with just that URL on it. When you tap your NFC-enabled phone on the COLDCARD your phone sees a web URL and will open it—even without any new software.

The rest of the job is performed by that web page. It looks at the URL (which can be quite long, up to 8000 bytes) and decodes the Bitcoin transaction the COLDCARD put there. Then, the website transmits it to a Bitcoin node, either directly via it’s own infrastructure, or indirectly by making your browser push the transaction to a another existing endpoint (typically via POST).

Other Notes

  • You can also use this feature to broadcast any signed transaction found on a MicroSD card (Tools > NFC Tools > Push Transaction).
  • Signed bitcoin transactions are public information since they will be soon recorded forever into the blockchain. But you may not want it linked to your IP address (and location) so either host your own service, or use a VPN on your phone to protect your IP.
  • The ckcc CLI tool has been extended with a new option that will use your desktop browser to push the transaction. Command is ckcc sign -p mempool example.psbt. You browser will launch to the required URL after signing. NFC is not required.
  • Learn more at PushTX.org.

Other New Features

  • New Feature: Transaction Output Explorer: allows viewing all output details for larger txn (10+ output, 20+ change) before signing. Offered for large transactions only because we are already showing all the details for typical transactions.
  • New Feature: Setting to enable always showing XFP as first item in home menu.

Enhancements

  • When signing, show sum of outgoing value at top. Always show number of inputs/outputs and total change value.
  • Add Sign PSBT shortcut to NFC Tools menu
  • Stricter p2sh-p2wpkh validation checks.
  • Show master XFP of BIP-85 derived wallet in story before activation. Only words and extended private key cases.
  • Add Theya option to Export Wallet
  • Mention the need to remove old duress wallets before locking down temporary seed.

Bug Fixes

  • Fix PSBTv2 PSBT_GLOBAL_TX_MODIFIABLE parsing.
  • Decrypting TAPSIGNER backup failed even for correct key.
  • Clear any pending keystrokes before PSBT approval screen.
  • Display max 20 change outputs in when signing, and max 10 of largest outputs, and offer the Transaction Output Explorer if more to be seen.
  • Calculate progress bar correctly in Address Explorer after first page.
  • Search also Wrapped Segwit single sig addresses if P2SH address provided, not just multisig (multisig has precedence for P2SH addresses)
  • Address search would not find addresses for non-zero account numbers that had been exported but not yet seen in a PSBT.

Video Tutorials

We have a growing library of video tutorials on Youtube … and we’re still adding more!