Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Repository files navigation

Android SDK demo

The demo consumes ../keystone-sdk-android/library/build/outputs/aar/library-release.aar. Rebuild that SDK AAR after changing Kotlin or Rust, then sync this project in Android Studio. Hummingbird and Gson remain explicit dependencies because local AARs do not carry Maven dependency metadata.

Run app on an API 31+ emulator. Open PSBT Extend from the top toolbar/menu.

  • Select a coin, edit the PSBT hex, and press Generate QR + verify round trip. PASS confirms UR decoding preserves PSBT bytes and the coin ID. Bitcoin returns null.
  • Verify all five coins + invalid coin rejection checks BTC/LTC/DOGE/DASH/BCH and unsupported IDs 1 and 4.
  • Paste UR parts (one per line) and press Parse pasted UR to inspect a received payload.

These checks exercise the actual SDK JNI library. They do not sign or validate transaction semantics. The screen displays the first QR frame; the full multipart sequence is available in the text field.

Hardware scan samples

In the original animated QR page, choose Litecoin, Dash, BitcoinCash, or Dogecoin. These now generate crypto-psbt-extend with coin IDs 2, 5, 145, and 3 respectively. DOGE has been added to the selector.

Load this public test mnemonic on the hardware, with an empty BIP39 passphrase:

abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about

Master fingerprint: 73c5da0a. Each fixture uses legacy P2PKH at m/44'/<SLIP44 coin>'/0'/0/0, receives at /0/1, and sends change to /1/0. SLIP44 coin values are LTC=2, DASH=5, BCH=145, DOGE=3. The DASH Extend ID and BIP44 coin path both use 5.

Each input has 1 coin, pays 0.25 coin, returns 0.7499 coin in change, and has 0.0001 coin fee. Fixtures contain the complete synthetic previous transaction, input derivation, and change derivation. BCH requests SIGHASH_ALL|FORKID (0x41). No fixture spends a real on-chain UTXO. Hardware acceptance/signing depends on its firmware supporting this protocol and the selected coin.

Fixture generation is reproducible with node tools/generate-psbt-extend-samples.cjs. It uses only Node's built-in crypto module; no private keys are saved in the fixtures.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages