CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-polkadot--util-crypto

A collection of useful crypto utilities for Polkadot ecosystem projects

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

ethereum.mddocs/

Ethereum Compatibility

Ethereum address handling and compatibility utilities for cross-chain functionality and EVM integration.

Capabilities

Ethereum Address Encoding

Convert public keys and addresses to Ethereum format.

/**
 * Encode address or public key to Ethereum format
 * @param addressOrPublic - SS58 address or public key bytes
 * @returns Ethereum address (0x prefixed, 40 hex chars)
 */
function ethereumEncode(addressOrPublic: string | Uint8Array): string;

/**
 * Check if string is valid Ethereum address
 * @param address - Address string to check
 * @returns true if valid Ethereum address format
 */
function isEthereumAddress(address: string): boolean;

/**
 * Check Ethereum address checksum validity
 * @param address - Ethereum address to validate
 * @returns true if checksum is valid
 */
function isEthereumChecksum(address: string): boolean;

Address Conversion

Convert between SS58 and EVM address formats.

/**
 * Convert SS58 address to EVM format
 * @param address - SS58 address string
 * @returns 20-byte EVM address
 */
function addressToEvm(address: string): Uint8Array;

/**
 * Convert EVM address to SS58 format
 * @param evmAddress - 20-byte EVM address
 * @param prefix - SS58 network prefix
 * @param hashType - Hash algorithm ('blake2' or 'keccak')
 * @returns SS58 address string
 */
function evmToAddress(evmAddress: Uint8Array, prefix?: number, hashType?: 'blake2' | 'keccak'): string;

Usage Examples:

import { 
  ethereumEncode,
  isEthereumAddress,
  addressToEvm,
  evmToAddress,
  sr25519PairFromSeed
} from "@polkadot/util-crypto";

// Generate Ethereum address from public key
const seed = new Uint8Array(32);
const pair = sr25519PairFromSeed(seed);
const ethAddress = ethereumEncode(pair.publicKey);
console.log(ethAddress); // "0x..."

// Validate Ethereum address
const isValid = isEthereumAddress("0x742d35Cc...49F8A26aE2");
console.log(isValid); // true

// Convert between formats
const ss58Address = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const evmBytes = addressToEvm(ss58Address);
const backToSS58 = evmToAddress(evmBytes, 0, 'blake2');

Install with Tessl CLI

npx tessl i tessl/npm-polkadot--util-crypto

docs

address.md

base-encoding.md

crypto-init.md

ethereum.md

hashing.md

index.md

json-encryption.md

key-derivation-pbkdf.md

key-derivation.md

keypairs.md

mnemonic.md

random.md

signatures.md

tile.json