serai/coins/monero/wallet
Luke Parker ed662568e2
Some checks failed
coins/ Tests / test-coins (push) Waiting to run
Coordinator Tests / build (push) Waiting to run
Full Stack Tests / build (push) Waiting to run
Lint / clippy (macos-13) (push) Waiting to run
Lint / clippy (macos-14) (push) Waiting to run
Lint / clippy (ubuntu-latest) (push) Waiting to run
Lint / clippy (windows-latest) (push) Waiting to run
Lint / deny (push) Waiting to run
Lint / fmt (push) Waiting to run
Lint / machete (push) Waiting to run
Monero Tests / unit-tests (push) Waiting to run
Monero Tests / integration-tests (v0.17.3.2) (push) Waiting to run
Monero Tests / integration-tests (v0.18.2.0) (push) Waiting to run
no-std build / build (push) Waiting to run
Processor Tests / build (push) Waiting to run
Tests / test-infra (push) Waiting to run
Tests / test-substrate (push) Waiting to run
Tests / test-serai-client (push) Waiting to run
Reproducible Runtime / build (push) Has been cancelled
Clean decoy selection code
2024-07-08 02:51:06 -04:00
..
address Clean the Monero lib for auditing (#577) 2024-07-07 06:57:18 -04:00
polyseed Clean the Monero lib for auditing (#577) 2024-07-07 06:57:18 -04:00
seed Clean the Monero lib for auditing (#577) 2024-07-07 06:57:18 -04:00
src Clean decoy selection code 2024-07-08 02:51:06 -04:00
tests Remove the DecoySelection trait 2024-07-08 00:30:42 -04:00
util Clean the Monero lib for auditing (#577) 2024-07-07 06:57:18 -04:00
Cargo.toml Remove the DecoySelection trait 2024-07-08 00:30:42 -04:00
LICENSE Clean the Monero lib for auditing (#577) 2024-07-07 06:57:18 -04:00
README.md Clean the Monero lib for auditing (#577) 2024-07-07 06:57:18 -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.