Skip to content

feat: implement Coldcard address verification#494

Open
harrshita123 wants to merge 3 commits intocaravan-bitcoin:mainfrom
harrshita123:fix-coldcard-address-verification-476
Open

feat: implement Coldcard address verification#494
harrshita123 wants to merge 3 commits intocaravan-bitcoin:mainfrom
harrshita123:fix-coldcard-address-verification-476

Conversation

@harrshita123
Copy link
Copy Markdown

What kind of change does this PR introduce?

Feature

Issue Number:

Fixes #476

Snapshots/Videos:

If relevant, did you update the documentation?

N/A

Summary

This PR adds support for on-device address verification for Coldcard wallets.

Because Coldcard is an air-gapped device, it cannot be queried directly over USB like a Trezor or Ledger. To solve this, I've implemented a "Guided Manual Verification" flow:

  • Added ColdcardConfirmMultisigAddress to handle the specific instructions for Coldcard's 'Address Explorer'.
  • Updated the coordinator UI (AddressExpander) to recognize a manual verification flag.
  • The UI now stays active and provides clear steps for navigating the Coldcard menus and selecting the correct multisig wallet/path.
  • Added unit tests in packages/caravan-wallets/src/coldcard.test.ts to verify interaction states and instruction messages.

Does this PR introduce a breaking change?

No

Checklist

  • I have tested my changes thoroughly.
  • I have added or updated tests to cover my changes (if applicable).
  • I have verified that test coverage meets or exceeds 95% (if applicable).
  • I have run the test suite locally, and all tests pass.
  • I have written tests for all new changes/features
  • I have followed the project's coding style and conventions.
  • I have created a changeset to document my changes (npm run changeset)

Other information

The verification flow is designed to be extensible; by using the manual flag in the interaction's run() response, the coordinator can support other air-gapped devices using the same architectural pattern.

Have you read the contributing guide?

Yes

For information on creating and using changesets, please refer to our documentation on changesets.

image

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 3, 2026

🦋 Changeset detected

Latest commit: e00cb7a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
caravan-coordinator Patch
@caravan/wallets Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
caravan-coordinator Ready Ready Preview, Comment Apr 28, 2026 7:21pm

Request Review

@bucko13
Copy link
Copy Markdown
Contributor

bucko13 commented Mar 24, 2026

Heads up, needs a changeset

@bucko13
Copy link
Copy Markdown
Contributor

bucko13 commented Mar 24, 2026

I'm also not seeing it here by the way.

Screenshot 2026-03-24 at 4 34 26 PM

@github-actions
Copy link
Copy Markdown
Contributor

This pull request has been inactive for 30 days and has been marked as stale. It will be closed in 7 days if no further activity occurs. To keep this PR open, add the "long-lived" label or comment on it.

@github-actions github-actions Bot added the stale label Apr 24, 2026
@harrshita123
Copy link
Copy Markdown
Author

Fixed the CI issues. I've updated the PR ,please take another look when you get a chance.

# Conflicts:
#	apps/coordinator/src/components/Slices/ConfirmAddress.jsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing Address Verification for Coldcard?

2 participants