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.2.2026080407.tar.gz (6.3 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.2.2026080407-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: arc76_core-1.2.2026080407.tar.gz
  • Upload date:
  • Size: 6.3 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.2.2026080407.tar.gz
Algorithm Hash digest
SHA256 86b2f3d45699aebfdb432001bfc220c541c79315e094ca1d665ec93e6ea19635
MD5 7e1b8b09040fe0ba7b2ce8f8a512261c
BLAKE2b-256 952d436504a7ceb946c5599f3d9d1b032b8f85ea91d07fdf014c47b5d2769435

See more details on using hashes here.

Provenance

The following attestation bundles were made for arc76_core-1.2.2026080407.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.2.2026080407-py3-none-any.whl.

File metadata

File hashes

Hashes for arc76_core-1.2.2026080407-py3-none-any.whl
Algorithm Hash digest
SHA256 f20a5e8be8b393ac44f6f48cb9f2f6b5aa1474e940f2e2a2e41e4afaa4652cb3
MD5 fd0dfd30d8509f6703c06418fd071a35
BLAKE2b-256 b56bb6a4beb683f376ccd986fab34caee374bc2349beed34b037a7528516a89c

See more details on using hashes here.

Provenance

The following attestation bundles were made for arc76_core-1.2.2026080407-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