# Cargo workspace root for aldabra. # # Three crates: # wallet-core — key derivation, signing, types, mnemonic handling # wallet-chain — pluggable chain backends (Koios, Ogmios). Trait-first. # wallet-mcp — binary; the MCP server, glues core+chain together. # # Workspace deps are pinned here so all three crates use the same versions. # Add a dep here, then reference it in each crate's Cargo.toml as # foo = { workspace = true } [workspace] resolver = "2" members = [ "crates/wallet-core", "crates/wallet-chain", "crates/wallet-mcp", ] [workspace.package] version = "0.0.1" edition = "2021" license-file = "LICENSE" repository = "https://git.sulkta.com/Sulkta-Coop/aldabra" authors = ["Sulkta "] [workspace.dependencies] # Async runtime — almost everything we do is I/O bound (chain queries, MCP stdio) tokio = { version = "1", features = ["full"] } # Cardano stack — pallas is the rust-native primitives library by txpipe. # We pull individual crates rather than the meta-crate so we control feature flags. pallas-primitives = "0.32" pallas-codec = "0.32" pallas-crypto = "0.32" pallas-addresses = "0.32" pallas-txbuilder = "0.32" pallas-network = "0.32" # Mnemonic + key derivation. bip39 for the wordlist, then pallas-crypto # handles the Cardano-specific CIP-3 / CIP-1852 derivation paths. bip39 = "2" # At-rest encryption for the mnemonic + derived keys on disk. age is # what the cauldron Fernet pattern would have been if we'd had it back # then — modern, audited, FOSS, and the secret never has to round-trip # through a daemon password prompt. age = "0.10" # Memory hygiene — wipe key material from RAM when keys go out of scope. zeroize = { version = "1", features = ["derive"] } # Errors — anyhow at the boundaries (binary), thiserror for crate-internal types anyhow = "1" thiserror = "1" # Serde for everything JSON serde = { version = "1", features = ["derive"] } serde_json = "1" # HTTP client for Koios + future Ogmios HTTP endpoints reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # MCP SDK for Rust. Note: the official Rust SDK has been moving fast # (modelcontextprotocol/rust-sdk on github). Pin a version once we # verify the API shape we actually use. rmcp = { version = "0.1", features = ["server", "transport-io"] } # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] }