serai/networks/monero/wallet
Luke Parker 880565cb81
Some checks failed
Coordinator Tests / build (push) Has been cancelled
crypto/ Tests / test-crypto (push) Has been cancelled
Full Stack Tests / build (push) Has been cancelled
Lint / clippy (macos-13) (push) Has been cancelled
Lint / clippy (macos-14) (push) Has been cancelled
Lint / clippy (ubuntu-latest) (push) Has been cancelled
Lint / clippy (windows-latest) (push) Has been cancelled
Lint / deny (push) Has been cancelled
Lint / fmt (push) Has been cancelled
Lint / machete (push) Has been cancelled
Message Queue Tests / build (push) Has been cancelled
Monero Tests / unit-tests (push) Has been cancelled
Reproducible Runtime / build (push) Has been cancelled
Tests / test-infra (push) Has been cancelled
common/ Tests / test-common (push) Has been cancelled
Monero Tests / integration-tests (v0.17.3.2) (push) Has been cancelled
Monero Tests / integration-tests (v0.18.2.0) (push) Has been cancelled
networks/ Tests / test-networks (push) Has been cancelled
no-std build / build (push) Has been cancelled
Processor Tests / build (push) Has been cancelled
Tests / test-substrate (push) Has been cancelled
Tests / test-serai-client (push) Has been cancelled
Rust 1.80
Preserves the fn accessors within the Monero crates so that we can use statics
in some cfgs yet not all (in order to provide support for more low-memory
devices) with the exception of `H` (which truly should be cached).
2024-07-26 19:28:10 -07:00
..
address Rust 1.80 2024-07-26 19:28:10 -07:00
polyseed Rust 1.80 2024-07-26 19:28:10 -07:00
seed Rust 1.80 2024-07-26 19:28:10 -07:00
src Rename the coins folder to networks (#583) 2024-07-18 15:16:45 -04:00
tests Rust 1.80 2024-07-26 19:28:10 -07:00
util Rust 1.80 2024-07-26 19:28:10 -07:00
Cargo.toml Rust 1.80 2024-07-26 19:28:10 -07:00
LICENSE Rename the coins folder to networks (#583) 2024-07-18 15:16:45 -04:00
README.md Rename the coins folder to networks (#583) 2024-07-18 15:16:45 -04:00

Monero Wallet

Wallet functionality for the Monero protocol, built around monero-serai. This library prides itself on resolving common pit falls developers may face.

monero-wallet also offers a FROST-inspired multisignature protocol orders of magnitude more performant than Monero's own.

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-serai 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 creating transactions
  • Be a wallet

This means that monero-serai 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-serai or wallet2. It also should be generally safe for usage with remote nodes.

It won't hide from remote nodes it's monero-serai however, potentially allowing a remote node to profile you. 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-serai.

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): Enables std (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.