Rust
cargo add wallet-hd-derivation-kit@1.0.0
use wallet_hd_derivation_kit::{derive_address, DeriveOptions, Source};
let source = Source::mnemonic(std::env::var("WALLET_MNEMONIC")?, "");
let result = derive_address(&source, DeriveOptions { chain: "bitcoin", ..Default::default() })?;
println!("{}", result.address);
The same crate provides the wallethd binary. Source validation and bounded batch APIs return typed errors. Runnable example.