Skip to main content

aptos_sdk/account/
mod.rs

1//! Account management for the Aptos SDK.
2#![allow(clippy::module_inception)] // account::account is intentional naming
3#![allow(rustdoc::broken_intra_doc_links)] // Docs don't use one of the features
4//!
5//! This module provides account types that wrap cryptographic keys
6//! and provide a unified interface for signing transactions.
7//!
8//! # Account Types
9//!
10//! - [`Ed25519Account`] - Single-key Ed25519 account (legacy format, most common)
11//! - [`Ed25519SingleKeyAccount`] - Ed25519 account using modern `SingleKey` format
12//! - [`MultiEd25519Account`] - M-of-N multi-signature Ed25519 account
13//! - [`Secp256k1Account`] - Single-key Secp256k1 account (Bitcoin/Ethereum curve)
14//! - [`Secp256r1Account`] - Single-key Secp256r1/P-256 account (WebAuthn/Passkey)
15//! - [`MultiKeyAccount`] - M-of-N multi-signature account with mixed key types
16//! - [`KeylessAccount`] - OIDC-based keyless account
17//!
18//! # Example
19//!
20//! ```rust,ignore
21//! use aptos_sdk::account::Ed25519Account;
22//!
23//! // Generate a new random account
24//! let account = Ed25519Account::generate();
25//! println!("Address: {}", account.address());
26//!
27//! // Create from a private key
28//! let private_key_hex = "0x...";
29//! let account = Ed25519Account::from_private_key_hex(private_key_hex).unwrap();
30//! ```
31
32mod account;
33#[cfg(feature = "ed25519")]
34mod ed25519;
35#[cfg(feature = "keyless")]
36mod keyless;
37#[cfg(feature = "mnemonic")]
38mod mnemonic;
39#[cfg(feature = "ed25519")]
40mod multi_ed25519;
41mod multi_key;
42#[cfg(feature = "secp256k1")]
43mod secp256k1;
44#[cfg(feature = "secp256r1")]
45mod secp256r1;
46
47pub use account::{Account, AnyAccount, AuthenticationKey};
48#[cfg(feature = "ed25519")]
49pub use ed25519::{Ed25519Account, Ed25519SingleKeyAccount};
50#[cfg(feature = "keyless")]
51pub use keyless::{
52    EphemeralKeyPair, HttpPepperService, HttpProverService, JwkSet, KeylessAccount,
53    KeylessSignature, OidcProvider, Pepper, PepperService, ProverService, ZkProof,
54};
55#[cfg(feature = "mnemonic")]
56pub use mnemonic::Mnemonic;
57#[cfg(feature = "ed25519")]
58pub use multi_ed25519::MultiEd25519Account;
59pub use multi_key::{AnyPrivateKey, MultiKeyAccount};
60#[cfg(feature = "secp256k1")]
61pub use secp256k1::Secp256k1Account;
62#[cfg(feature = "secp256r1")]
63pub use secp256r1::Secp256r1Account;