@tananetwork/crypto
v0.2.3
Published
Shared cryptography utilities for Tana blockchain - Ed25519 signing, verification, address encoding, and service authentication
Maintainers
Readme
tana-crypto
Ed25519 cryptography library for the Tana blockchain ecosystem.
overview
tana-crypto provides consistent cryptographic operations across all Tana services. it handles signature verification, key formatting, and message canonicalization to ensure signatures generated by any Tana component can be verified by any other.
how it works
the library wraps @noble/ed25519 with Tana-specific conventions. it handles the ed25519_ prefix for public keys and ed25519_sig_ prefix for signatures, ensuring consistent formatting regardless of how keys and signatures are stored or transmitted.
signature verification
const result = await verifySignature(
message,
signature, // with or without ed25519_sig_ prefix
publicKey // with or without ed25519_ prefix
)
if (result.valid) {
// signature matches
}message canonicalization
for transactions and authentication, the library provides functions that create deterministic message formats:
const result = await verifyTransactionSignature(
transaction,
signature,
publicKey
)transaction fields are ordered consistently before hashing, ensuring the same transaction always produces the same signature regardless of JSON key ordering.
architecture
written in TypeScript with full type definitions. the library exports functions for:
- raw signature verification
- transaction signature verification
- authentication signature verification
- prefix manipulation utilities
error handling
verification results include detailed error information:
{
valid: false,
error: "invalid signature length",
details: {
expected: 64,
received: 32
}
}debug mode
enable debug logging for troubleshooting signature issues:
await verifySignature(message, sig, key, {
debug: true,
label: "user-registration"
})integration
tana-crypto is used by tana-ledger for transaction verification, tana-identity for authentication signatures, and tana-mobile for message signing. all services share this single source of truth for cryptographic operations.
