Crypto, keys, assets and memos

@beblurt/dblurt exports primitives commonly needed by Blurt applications.

For canonical definitions of authorities, signatures, assets and memos, see Blockchain model.

Commonly used exports include:

  • PrivateKey
  • PublicKey
  • Signature
  • Asset
  • Price
  • Authority
  • cryptoUtils
  • encodeMemo
  • decodeMemo
const { PrivateKey } = require('@beblurt/dblurt');

const privateKey = PrivateKey.fromString(process.env.BLURT_POSTING_KEY);
const publicKey = privateKey.createPublic();

console.log(publicKey.toString());

The test suite covers deterministic key generation, signature creation, verification and public key recovery.

const { PrivateKey, PublicKey, encodeMemo, decodeMemo } = require('@beblurt/dblurt');

const from = PrivateKey.fromString(process.env.BLURT_MEMO_KEY);
const to = PublicKey.fromString(process.env.BLURT_RECIPIENT_MEMO_PUBLIC_KEY);

const encrypted = encodeMemo('#secret message', from, to);
const decrypted = decodeMemo(encrypted, from);

console.log(decrypted);

The integration tests cover memo round-trips for ASCII, French accents, Thai, Japanese, Chinese and emoji content.

Encrypted memos use the legacy Blurt/Graphene-compatible memo format. Treat them as a compatibility feature, not as modern authenticated encryption. See Security guide and Security architecture for the project threat model and known limitations.

  • Never commit private keys.
  • Do not ship application source code with embedded private keys.
  • Treat browser signing as security-sensitive.
  • Prefer wallet/user approval flows for public web applications.
  • Do not treat memo keys as transaction authorities.