monero 0.15.0

Rust Monero Library.
Documentation

Build Status unsafe forbidden Crates.io Documentation License: MIT MSRV

Rust Monero Library

Library with support for de/serialization on block data structures and key/address generation and scanning related to Monero cryptocurrency.

Supports (or should support)

  • De/serialization of Monero blocks and transactions (consensus encoding)
  • Address and subaddress creation, de/serialization and validation
  • Private keys and one-time keys creation, de/serialization and validation
  • Transaction owned output detection and amount recovery with view keypair
  • Serde support on most structures with feature serde_support
  • Strict encoding support on most structures with feature strict_encoding_support

Documentation

Currently can be found on docs.rs/monero. Patches to add usage examples and to expand on existing docs would be extremely appreciated.

Features

serde_support

The serde_support feature enables implementation of serde on serializable types across the library.

experimental

The experimental feature enable the method signature_hash in Transaction, the method computes the message to be signed by the CLSAG signature algorithm. This method is featured as experimental at the moment because it lacks reviews and tests.

strict_encoding_support

The strict_encoding_support feature enables StrictEncode and StrictDecode trait implementation for a few types that implements consensus::Encodable and consensus::Decodable.

strict_encoding is a wrapper that allows multiple consensus encoding to work under the same interface, i.e. StrictEncode and StrictDecode.

Contributing

Contributions are generally welcome. If you intend to make larger changes please discuss them in an issue before PRing them to avoid duplicate work and architectural mismatches.

Release Notes

See CHANGELOG.md.

About

This started as a research project sponsored by TrueLevel SA, it is now developed and maintained by h4sh3d and member's of the community and NOT by the Monero Core Team.

Licensing

The code in this project is licensed under the MIT License