Skip to main content

Shared ARC76 (PBKDF2-HMAC-SHA256) seed derivation used by the per-chain arc76-* packages (arc76-algorand, arc76-ethereum, arc76-bitcoin, arc76-bitcoincash, arc76-solana). https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0076.md

Project description

arc76-core

ARC76 Account

Shared ARC76 seed derivation (PBKDF2-HMAC-SHA256, 999,999 iterations, 32-byte output) used internally by the per-chain arc76-* packages (arc76-algorand, arc76-ethereum, arc76-bitcoin, arc76-bitcoincash, arc76-solana).

Most consumers should install a chain-specific package instead of this one directly — this package is only useful if you're implementing ARC76 support for a new chain yourself.

Zero third-party dependencies: PBKDF2 is computed with the standard library's hashlib.pbkdf2_hmac, which delegates to OpenSSL's PKCS5_PBKDF2_HMAC — the same audited implementation the cryptography package itself relies on — falling back to a pure-Python implementation only if OpenSSL is unavailable. There is no bespoke PBKDF2 code in this package.

Usage

pip install arc76-core
from arc76.core import derive_seed, derive_seed_with_email

seed = derive_seed(password)          # bytes, 32 bytes, slot 0
seed1 = derive_seed(password, 1)      # slot 1

email_seed = derive_seed_with_email(email, password)  # slot 0

Password must be at least 16 characters (raises ValueError otherwise) — production passwords should be much longer (≥ 50 characters recommended).

derive_seed/derive_seed_with_email are synchronous, unlike the TypeScript package's async functions — Python's hashlib.pbkdf2_hmac is a synchronous, CPU-bound OpenSSL call with no natural async form (the TypeScript package is async only because browsers' WebCrypto subtle.deriveBits is async-only).

⚠️ Same-curve chains share the literal same key material. From the same password/email/slot, arc76-bitcoin/arc76-bitcoincash/arc76-ethereum derive the identical secp256k1 private key, and arc76-algorand/arc76-solana derive the identical Ed25519 keypair — leaking one chain's key leaks every other chain sharing its curve. Use a different password (or slot) per chain if you need isolation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arc76_core-1.1.2026080321.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arc76_core-1.1.2026080321-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file arc76_core-1.1.2026080321.tar.gz.

File metadata

  • Download URL: arc76_core-1.1.2026080321.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for arc76_core-1.1.2026080321.tar.gz
Algorithm Hash digest
SHA256 8315206cc00f5a442457b8cd444d1b84b7445582ebd28191e54c41fe976d9291
MD5 a48202a9d5f65796f2d8f6bb064d98e8
BLAKE2b-256 62fc5851810e733f7485c58b5e9a3d5060e737fb8e5fce906c61b7f920baa443

See more details on using hashes here.

Provenance

The following attestation bundles were made for arc76_core-1.1.2026080321.tar.gz:

Publisher: publish-pypi.yml on scholtz/ARC76Account

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arc76_core-1.1.2026080321-py3-none-any.whl.

File metadata

File hashes

Hashes for arc76_core-1.1.2026080321-py3-none-any.whl
Algorithm Hash digest
SHA256 604cce5690db238becf0ee62b531b91804e2015c9916a655d0f323ab5dba625a
MD5 9d69dba37d44811543016ba142999bb3
BLAKE2b-256 1d7c7003f3a77966e016126e2434f394534e61ef6962917c8cd7fee0130fccbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for arc76_core-1.1.2026080321-py3-none-any.whl:

Publisher: publish-pypi.yml on scholtz/ARC76Account

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page