Skip to content

feat(sdk-coin-kaspa): implement Kaspa SDK module#8513

Merged
mohd-kashif merged 1 commit into
masterfrom
feat/kaspa/pr2-sdk-module
Apr 21, 2026
Merged

feat(sdk-coin-kaspa): implement Kaspa SDK module#8513
mohd-kashif merged 1 commit into
masterfrom
feat/kaspa/pr2-sdk-module

Conversation

@mohd-kashif
Copy link
Copy Markdown
Contributor

  • Kaspa coin class (UTXO, Schnorr/secp256k1, 8 decimals / sompi)
  • TransactionBuilder + TransactionBuilderFactory
  • KeyPair (Secp256k1ExtendedKeyPair, kaspa bech32 address derivation)
  • Transaction with Blake2b-256 sighash and Schnorr signatures
  • Utils: kaspa/kaspatest bech32 address validation
  • Full test suite: keyPair, transaction, builder, utils, coin, transactionFlow tests
  • .mocharc.yml and eslint config

Jira: CECHO-388

@manojkumar138 manojkumar138 force-pushed the feat/kaspa/pr1-statics branch from eb84b72 to 612ae7d Compare April 15, 2026 08:21
@mohd-kashif mohd-kashif changed the base branch from feat/kaspa/pr1-statics to master April 16, 2026 05:54
@mohd-kashif mohd-kashif force-pushed the feat/kaspa/pr2-sdk-module branch 2 times, most recently from 939f666 to ab449e0 Compare April 16, 2026 06:08
@mohd-kashif mohd-kashif self-assigned this Apr 16, 2026
Comment thread modules/sdk-coin-kaspa/src/lib/constants.ts Outdated
Comment thread modules/sdk-coin-kaspa/src/lib/constants.ts Outdated
Comment thread modules/sdk-coin-kaspa/src/lib/keyPair.ts Outdated
Comment thread modules/sdk-coin-kaspa/src/lib/transactionBuilder.ts
Comment thread modules/sdk-coin-kaspa/src/kaspa.ts Outdated
Comment thread modules/sdk-coin-kaspa/src/tkaspa.ts Outdated
Comment thread modules/sdk-coin-kaspa/src/lib/sighash.ts Outdated
@parasgarg-bitgo
Copy link
Copy Markdown
Contributor

If Kaspa follows UTXO model, why are we not extending abstract-UTXO module for it?

@mohd-kashif mohd-kashif force-pushed the feat/kaspa/pr2-sdk-module branch from ab449e0 to f774e67 Compare April 20, 2026 21:29
@mohd-kashif
Copy link
Copy Markdown
Contributor Author

If Kaspa follows UTXO model, why are we not extending abstract-UTXO module for it?

Kaspa shares only the UTXO accounting model — everything else is different:

Blake2b-256 hashing, not SHA-256
Schnorr-only with x-only pubkeys and a Kaspa-specific OP_CHECKSIG_SCHNORR (0xAB) opcode — not Bitcoin's Taproot Schnorr
cashaddr-style bech32 with a custom polynomial and kaspa:/kaspatest: prefix — incompatible with Bitcoin bech32
Kaspa-specific tx fields (subnetworkId, gas, payload, per-input sigOpCount) and its own BIP-143-like sighash with different pre-image layout
BlockDAG (GHOSTDAG) consensus, no PSBT standard, no Bitcoin-compatible wire format
Extending abstract-utxo would mean overriding nearly every method and shoe-horning Kaspa into utxo-lib, which doesn't know how to parse/sign Kaspa transactions. The clean separation — extend BaseCoin / BaseTransactionBuilder / Secp256k1ExtendedKeyPair — is what the codebase already does for other non-Bitcoin UTXO-ish chains (e.g., Cardano in sdk-coin-ada).

@mohd-kashif mohd-kashif marked this pull request as ready for review April 21, 2026 05:02
@mohd-kashif mohd-kashif requested review from a team as code owners April 21, 2026 05:02
@mohd-kashif mohd-kashif force-pushed the feat/kaspa/pr2-sdk-module branch from d6f4b8d to ca90aa0 Compare April 21, 2026 05:05
@mohd-kashif mohd-kashif force-pushed the feat/kaspa/pr2-sdk-module branch from ca90aa0 to 3d44df7 Compare April 21, 2026 08:12
@mohd-kashif mohd-kashif merged commit 76ce1d1 into master Apr 21, 2026
21 of 22 checks passed
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.

2 participants