Skip to main content

Enum Definition

enum SigningAlgorithm {
  ECDSA = 'ECDSA',
  ED25519 = 'ED25519',
  BIP340 = 'BIP340',
}

Values

ECDSA

  • Description: Elliptic Curve Digital Signature Algorithm
  • Use Case: EVM chains (Ethereum, Polygon, BSC, etc.)
  • Curve: secp256k1
  • Security: Industry standard for Ethereum and EVM-compatible chains

ED25519

  • Description: Edwards-curve Digital Signature Algorithm
  • Use Case: Solana, Cosmos, Flow, Sui, and other modern chains
  • Curve: Curve25519
  • Security: High performance, modern cryptographic algorithm

BIP340

  • Description: Bitcoin Improvement Proposal 340 (Schnorr signatures)
  • Use Case: Bitcoin and Bitcoin-compatible chains
  • Curve: secp256k1
  • Security: More efficient than ECDSA for Bitcoin

Chain Mapping

Each blockchain chain uses a specific signing algorithm:
const MPC_CHAIN_CONFIG = {
  EVM: {
    derivationPath: [44, 60, 0, 0, 0],
    signingAlgorithm: SigningAlgorithm.ECDSA,
  },
  SVM: {
    derivationPath: [44, 501, 0, 0, 0],
    signingAlgorithm: SigningAlgorithm.ED25519,
  },
  BTC: {
    derivationPath: [84, 0, 0, 0, 0],
    signingAlgorithm: SigningAlgorithm.BIP340,
  },
  COSMOS: {
    derivationPath: [44, 118, 0, 0, 0],
    signingAlgorithm: SigningAlgorithm.ED25519,
  },
  FLOW: {
    derivationPath: [44, 539, 0, 0, 0],
    signingAlgorithm: SigningAlgorithm.ED25519,
  },
  SUI: {
    derivationPath: [44, 784, 0, 0, 0],
    signingAlgorithm: SigningAlgorithm.ED25519,
  }
};

Example

import { SigningAlgorithm } from '@dynamic-labs-wallet/node';

// Check signing algorithm for EVM
const evmAlgorithm = SigningAlgorithm.ECDSA;
console.log('EVM uses:', evmAlgorithm); // 'ECDSA'

// Check signing algorithm for Solana
const solanaAlgorithm = SigningAlgorithm.ED25519;
console.log('Solana uses:', solanaAlgorithm); // 'ED25519'

// Check signing algorithm for Bitcoin
const bitcoinAlgorithm = SigningAlgorithm.BIP340;
console.log('Bitcoin uses:', bitcoinAlgorithm); // 'BIP340'

Usage

This enum is used to determine:
  • Key share types: Different algorithms use different key share structures
  • Signature formats: Each algorithm produces different signature formats
  • Chain compatibility: Ensures correct algorithm is used for each chain