coin_monero library

Classes

Addr
Bech32
Chain
CodecGate
CryptoVault
CurveGate
Implementations may use pure Dart math or native FFI/WASM bindings.
Denomination
DerivedKey
DerivedKeyMaterial
DerivedPublicKey
DerivedSecretKey
DigestGate
EcdsaSig
Ed25519Gate
Pluggable backend for Ed25519 curve operations (Monero, etc.). All inputs/outputs are byte arrays so native backends avoid BigInt conversion.
EdPoint
ExTx
FundingPlan<T>
HdAccount
An account node m/purpose'/coinType'/account' bound to a ChainParams and a DerivationScheme.
HdWallet
A hierarchical-deterministic wallet root.
InputSig
DER-encoded ECDSA sig + sighash byte.
KeyForge
KeyImage
key_image = privateKey * Hp(publicKey). Deterministic per output, so double-spends produce the same image and get rejected.
LegacyAddr
LegacyInput
LegacySigHasher
Legacy sighash (pre-segwit).
Locking
MessageSig
Mnemonic
MoneroAddr
Monero addresses encode two Ed25519 public keys (spend + view) rather than a single hash, so they don't share the Bitcoin Addr interface.
MoneroIntegratedAddr
Integrated address: net_byte(1) || spend_key(32) || view_key(32) || payment_id(8) || checksum(4).
MoneroKeys
Spend and view key pairs on Ed25519. From a seed: spendPriv = reduce(seed), viewPriv = reduce(keccak(spendPriv)), public keys = scalar * G.
MoneroMnemonic
Electrum-style 25-word mnemonic. The spend key (32 bytes LE) is split into eight 4-byte groups, each mapped to 3 word indices mod 1626. The 25th word is a CRC-32 checksum over the unique prefixes of the first 24.
MoneroStandardAddr
Standard address: net_byte(1) || spend_key(32) || view_key(32) || checksum(4).
MoneroSubaddr
Subaddress: same layout as standard but different network byte prefix.
MoneroSubaddress
Subaddress (i, j): m = Hs("SubAddr\0" || viewKey || i || j), subSpend = m*G + mainSpend, subView = viewKey * subSpend. (0, 0) returns the main keys directly.
MoneroTx
MoneroTxInput
MoneroTxOutput
MultiSig
M-of-N multisig: OP_M <keys...> OP_N OP_CHECKMULTISIG
Op
OpCode
Outpoint
OutputReference
P2pkhAddr
P2pkhInput
scriptSig = sig, pubkey
P2shAddr
P2shMultisigInput
P2wpkhAddr
P2wpkhInput
witness = sig, pubkey
P2wshAddr
PayToPubKeyHash
P2PKH: OP_DUP OP_HASH160 <20> OP_EQUALVERIFY OP_CHECKSIG
PayToScriptHash
P2SH: OP_HASH160 <20> OP_EQUAL
PayToTaproot
P2TR: OP_1 <32>
PayToWitness
Generic witness program (version 0-16).
PayToWitnessPubKey
P2WPKH: OP_0 <20>
PayToWitnessScript
P2WSH: OP_0 <32>
PedersenCommitment
C = amount * H + mask * G. H = hashToPoint(G), so DL(G,H) is unknown.
PolyseedMnemonic
16-word polyseed mnemonic for Monero.
PublicKey
PushData
PushDataMatcher
Matches any push of a given size, for pattern matching against scripts.
RawInput
RawLocking
RecoverableEcdsaSig
RingMember
SchnorrInputSig
Schnorr sig: 64 bytes, or 65 with non-default sighash.
SchnorrSig
Script
ScriptOp
SecretKey
SegwitAddr
SigHasher
SigHashType
StealthAddress
One-time output key: P = Hs(r*viewKey || i)G + spendKey. Recipient detects via P' = Hs(viewPrivR || i)*G + spendKey, checks P'==P.
TapBranch
TapLeaf
Taproot
TaprootAddr
Taproot address (bech32m, witness v1).
TaprootKeyInput
Key-path spend; witness = schnorr_sig.
TaprootScriptInput
Script-path spend; witness = ...stack, script, controlBlock.
TaprootSigHasher
BIP-341 taproot sighash.
TapTree
Tx
TxBody
Components of a transaction body (everything after the version word), shared by Tx.fromReader and ExTx.fromReader.
TxInput
TxOutput
UnknownWitnessAddr
For witness versions 2-16 (future soft forks).
VaultKeeper
Call initialize once before using any crypto operations. Defaults to pure Dart backends; register FFI backends with register or registerAsync before calling initialize.
WireMeasure
Counts serialized size without allocating.
WireReader
WireWriter
WitnessInput
WitnessSigHasher
BIP-143 witness v0 sighash.

Enums

DerivationScheme
BIP standard derivation schemes, each mapping to a single address type.
MoneroAddrType
RctType

Extensions

MoneroParams on ChainParams

Constants

moneroEnglishWords → const List<String>

Properties

ed25519D BigInt
final
ed25519G EdPoint
final
ed25519HalfL BigInt
final
ed25519I BigInt
final
ed25519L BigInt
final
ed25519P BigInt
final

Functions

base58Decode(String encoded) Uint8List
base58Encode(Uint8List payload) String
bytesEqual(Uint8List a, Uint8List b) bool
checkInt32(int i) → void
checkUint16(int i) → void
checkUint32(int i) → void
checkUint64(BigInt i) → void
checkUint8(int i) → void
compareBytes(Uint8List a, Uint8List b) int
concatBytes(List<Uint8List> parts) Uint8List
copyCheckBytes(Uint8List bytes, int length, [String name = 'bytes']) Uint8List
edBigIntToBytes(BigInt value, int length) Uint8List
edBytesToBigInt(Uint8List bytes) BigInt
edBytesToPoint(Uint8List bytes) EdPoint
edIsOnCurve(EdPoint point) bool
edPointAdd(EdPoint p1, EdPoint p2) EdPoint
edPointToBytes(EdPoint point) Uint8List
edScalarMult(BigInt k, EdPoint point) EdPoint
edScalarReduce(Uint8List bytes) BigInt
generateSecureBytes(int n) Uint8List
hash160(Uint8List data) Uint8List
hexDecode(String hex) Uint8List
Accepts optional "0x" prefix.
hexEncode(Uint8List bytes) String
hmacSha256(Uint8List key, Uint8List data) Uint8List
hmacSha512(Uint8List key, Uint8List data) Uint8List
initCoin() Future<void>
keccak256(Uint8List data) Uint8List
moneroBase58Decode(String encoded) Uint8List
moneroBase58Encode(Uint8List data) String
Monero's block-based base58: input split into 8-byte blocks, each independently encoded to a fixed number of base58 chars.
moneroChecksum(Uint8List data) Uint8List
ripemd160(Uint8List data) Uint8List
sha256(Uint8List data) Uint8List
sha256d(Uint8List data) Uint8List
sha512(Uint8List data) Uint8List
taggedHash(String tag, Uint8List data) Uint8List
wifDecode(String wif, Chain chain) → (Uint8List, bool)
wifEncode(Uint8List privKey, Chain chain, {bool compressed = true}) String

Exceptions / Errors

OutOfData