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(viewPriv R || 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.
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