0.1.0 — 2026-07-01 — foundation (alpha)
The cryptographic and encoding foundation, fully unit-tested offline:
- Keccak-256 — pure Elixir (Hedera/Ethereum padding), verified against known vectors.
- Keys —
Hedera.PrivateKey/Hedera.PublicKeyfor Ed25519 and ECDSA secp256k1, with Hedera's signing conventions (Keccak-256 prehash + canonical low-Sr‖sfor ECDSA), 33-byte compressed public keys, sign/verify, hex round-trip. - Identifiers —
AccountId,TopicId,Timestamp(parse / format / protobuf). - Protobuf — minimal proto3 wire encoder (
Hedera.Proto).
Consensus Service (transactions + gRPC)
- Transactions —
Hedera.Transactionencodes and signsTransactionBody→SignedTransaction→TransactionforconsensusSubmitMessageandconsensusCreateTopic. - gRPC —
Hedera.Grpc(unary over HTTP/2 h2c via Mint),Hedera.Network(testnet/mainnet nodes),Hedera.Client(submit_message/3,create_topic/2). - Validated live: a natively-built, natively-signed HCS message submit is accepted by a
Hedera testnet node (pre-check
OK), confirming protobuf field numbers and signing end-to-end. (mix test --include network.)
Receipts & mirror node
- Receipts —
Hedera.Client.transaction_receipt/3polls the free gRPCgetTransactionReceipts;Hedera.Receiptparses status, topic sequence number and running hash. Verified live (submit → SUCCESS receipt with a sequence number). - Mirror node —
Hedera.MirrorNodeREST reads (topic messages, transactions); addsjason.
Reliability
- Address book + retry —
Hedera.Network.testnet_nodes/0lists multiple consensus nodes;Hedera.Clientrebuilds + re-signs per target node and retries the next node on transient (BUSY) pre-checks or transport errors.
Crypto Service (HBAR transfers)
- Transfers —
Hedera.Transaction.crypto_transfer/1andHedera.Client.transfer_hbar/3build and sign acryptoTransferof HBAR between accounts. Amounts are encoded as protobufsint64(ZigZag, viaHedera.Proto.sint64_field/2); debits are negative, credits positive, and must net to zero. - Validated live: a natively-built transfer is accepted by a testnet node (pre-check
OK) and reaches aSUCCESSreceipt, confirming thecryptoTransferfield numbers and theTransferList/AccountAmount(sint64) encoding end-to-end.
Token Service (HTS)
- Tokens —
Hedera.Transactiongainstoken_create/1,token_mint/1,token_burn/1andtoken_associate/1;crypto_transfer/1now also carries:token_transfers.Hedera.Clientgainscreate_token/2,mint_token/4,burn_token/4,associate_token/4,transfer_token/4. NewHedera.TokenId;Hedera.PublicKey.to_key_proto/1encodes aKeymessage (Ed25519 in field 2, ECDSA secp256k1 in field 7);Hedera.Receiptnow parsestoken_idandnew_total_supply. - Multi-signature — transaction building accepts
:signers(extra keys beyond the operator); the signature map carries oneSignaturePairper distinct key, so e.g. a token association can be signed by both the fee-paying operator and the account being associated. - Validated live (full lifecycle on testnet): create a fungible token → mint supply (receipt
token_id+new_total_supply) → associate a second account (multi-sig: operator ECDSA + account Ed25519) → transfer tokens to it — every step reaches aSUCCESSreceipt. This confirms thetokenCreation(29) /tokenMint(37) /tokenAssociate(40) field numbers, theKeyencoding, andTokenTransferListend-to-end.
Next: NFT mint/metadata, token freeze/kyc/wipe, protoc-generated messages, hex.pm release.