16 releases (10 breaking)

0.12.2 May 24, 2024
0.12.1 Feb 4, 2024
0.12.0 Jan 31, 2024
0.9.0 Nov 28, 2023
0.3.0 Jun 13, 2022

#1580 in Magic Beans

Download history 208/week @ 2024-03-31 37/week @ 2024-04-07 54/week @ 2024-04-14 59/week @ 2024-04-21 119/week @ 2024-04-28 18/week @ 2024-05-05 46/week @ 2024-05-12 240/week @ 2024-05-19 114/week @ 2024-05-26 100/week @ 2024-06-02 111/week @ 2024-06-09 145/week @ 2024-06-16 307/week @ 2024-06-23 45/week @ 2024-06-30 98/week @ 2024-07-07 222/week @ 2024-07-14

675 downloads per month
Used in 5 crates (3 directly)

MIT license

76KB
2K SLoC

Coldcard Interface Library

coldcard is a library for interfacing with the Coldcard hardware wallet over USB.

Usage

use coldcard::protocol;

// create an API instance
let mut api = coldcard::Api::new()?;

// detect all connected Coldcards
let serials = api.detect()?;

// get the first serial and open it
let (mut cc, master_xpub) = api.open(&serials[0], None)?;

// set a passphrase
cc.set_passphrase(protocol::Passphrase::new("secret")?)?;

// after the user confirms
let xpub = cc.get_passphrase_done()?;

if let Some(xpub) = xpub {
    println!("The new XPUB is: {}", xpub);
}

// secure logout
cc.logout()?;

Linux Specific Instructions

In order to be able to detect a Coldcard device on a Linux system, 51-coinkite.rules must be placed in /etc/udev/rules.d/. This can be installed using the CLI tool.

Two mutually exclusive HID backends are supported and can be turned on using the following features:

Logging

The log feature enables logging using the log crate. Disabled by default. Use judiciously as logging can leak details into the environment.

CLI

This project also offers a CLI tool. See the crate's own README for more information.

Install it with:

$ cargo install coldcard-cli

Contributing

Contributions are welcome. Before making large changes, please open an issue first.

Disclaimer

This is not an official project and comes with no warranty whatsoever.

Dependencies

~3–14MB
~134K SLoC