mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-24 12:39:33 +00:00
59 lines
2.2 KiB
Markdown
59 lines
2.2 KiB
Markdown
|
# 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.
|