Expand description
§monero-wallet
Wallet functionality for the Monero protocol, built around monero-oxide. This library prides itself on resolving common pitfalls developers may face.
monero-wallet
also offers a FROST-inspired multisignature protocol orders of
magnitude more performant than Monero’s own, formalized as
FROSTLASS.
This library is usable under no-std when the std
feature (on by default) is
disabled.
§Features
- Scanning Monero transactions
- Sending Monero transactions
- Sending Monero transactions with a FROST-inspired threshold multisignature protocol, orders of magnitude more performant than Monero’s own
§Caveats
This library DOES attempt to do the following:
- Create on-chain transactions identical to how wallet2 would (unless told not to)
- Not be detectable as
monero-wallet
when scanning outputs - Not reveal spent outputs to the connected RPC node
This library DOES NOT attempt to do the following:
- Have identical RPC behavior when scanning outputs/creating transactions
- Be a wallet, maintaining state, performing output selection, and running in the background
This means that monero-wallet
shouldn’t be fingerprintable on-chain. It also
shouldn’t be fingerprintable if a targeted attack occurs to detect if the
receiving wallet is monero-wallet
or wallet2
. It also should be generally
safe for usage with remote nodes, but may be detected as monero-wallet
by a
remote node. The implications of this are left to the user to consider.
It also won’t act as a wallet, just as a wallet-functionality library.
wallet2
has several non-transaction-level policies, such as always
attempting to use two inputs to create transactions. These are considered out
of scope to monero-wallet
.
Finally, this library only supports producing transactions with CLSAG signatures. That means this library cannot spend non-RingCT outputs.
§Cargo Features
std
(on by default): Enablesstd
(and with it, more efficient internal implementations).compile-time-generators
(on by default): Derives the generators at compile-time so they don’t need to be derived at runtime. This is recommended if program size doesn’t need to be kept minimal.multisig
: Adds support for creation of transactions using a threshold multisignature wallet.
Re-exports§
pub use monero_rpc as rpc;
pub use monero_address as address;
Modules§
- block
- Block structs and functionality.
- extra
- Structures and functionality for working with transactions’ extra fields.
- generators
- Monero Generators
- io
- Monero IO
- merkle
- Merkle tree functionality.
- primitives
- Monero Primitives
- ring_
signatures - Ring Signature structs and functionality.
- ringct
- RingCT structs and functionality.
- send
- Structs and functionality for sending transactions.
- transaction
- Transaction structs and functionality.
Structs§
- Guaranteed
Scanner - A transaction scanner to find outputs received which are guaranteed to be spendable.
- Guaranteed
View Pair - The pair of keys necessary to scan outputs immune to the burning bug.
- Output
With Decoys - An output with decoys selected.
- Scanner
- A transaction scanner to find outputs received.
- Timelocked
- A collection of potentially additionally timelocked outputs.
- View
Pair - The pair of keys necessary to scan transactions.
- Wallet
Output - A scanned output and all associated data.
Enums§
- Scan
Error - Errors when scanning a block.
- View
Pair Error - An error while working with a ViewPair.
Constants§
- BLOCK_
TIME - Monero’s block time target, in seconds.
- COINBASE_
LOCK_ WINDOW - The minimum amount of blocks a coinbase output is locked for.
- DEFAULT_
LOCK_ WINDOW - The minimum amount of blocks an output is locked for.