mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-24 12:39:33 +00:00
7d2d739042
* Rename the coins folder to networks Ethereum isn't a coin. It's a network. Resolves #357. * More renames of coins -> networks in orchestration * Correct paths in tests/ * cargo fmt
58 lines
2.2 KiB
Markdown
58 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.
|