6 releases (breaking)

✓ Uses Rust 2018 edition

new 0.5.1 May 23, 2020
0.5.0 May 5, 2020
0.4.0 Oct 9, 2019
0.3.0 Oct 14, 2019
0.1.0 Jun 20, 2019

#25 in Cryptocurrencies

Download history 3/week @ 2020-02-05 7/week @ 2020-02-12 23/week @ 2020-02-19 25/week @ 2020-02-26 11/week @ 2020-03-04 5/week @ 2020-03-11 13/week @ 2020-03-18 4/week @ 2020-03-25 23/week @ 2020-04-01 34/week @ 2020-04-08 25/week @ 2020-04-15 8/week @ 2020-04-22 16/week @ 2020-04-29 16/week @ 2020-05-06 7/week @ 2020-05-13 32/week @ 2020-05-20

66 downloads per month
Used in less than 8 crates

MIT license

560 lines


Build status Version Documentation License

This is the alpha version of official Rust library, which allows you to do the following:

  • Create transactions
  • Sign transactions
  • Generate addresses
  • Interact with an IRI node

This client library is still in the alpha stage but it should cover most usages. The main crate is under iota-core with library named as iota which re-exports fundamental crates from bee and also provide client features and utilities that users need. API calls like send_transfers and traverse_bundle are supported. But many modules are raw exported, so users might expect the interface is not that ergonomic yet. There may also be some performance and stability issues. Please report any issues in our issue tracker.

Table of contents
Using the library
Getting started
API reference
Supporting the project
Joining the discussion


To use the library, we recommend update your Rust to latest stable version rustup update stable. Nightly should be fine but you are expected some changes might not be compatable.

no_std is not supported currently, but we are working on it in bee, and will provide it as feature once new library implementation is ready.

Using the library

Using the library is fairly easy, just add it as dependancy in Cargo.toml:

iota-core = "0.1.0-alpha"

And the import the lbrary in your code:

use iota;

Getting started

After you've installed the library, you can connect to an IRI node to send transactions to it and interact with the ledger.

To connect to a local IOTA node, we provide a module Client :

use iota::Client;

fn main() {
  let mut iota = iota::Client::new("https://nodes.comnet.thetangle.org");
  println!("{:#?}", iota.get_node_info().unwrap());

API reference

You can read the API reference here, or generate them on your own.

If you'd like to explore the implementation in more depth, the following command generates docs for the whole crate, including private modules:

cargo doc --document-private-items --no-deps --open


You can see the examples in examples directory and try them with:

cargo run --example send-transfers

Supporting the project

Joining the discussion

If you want to get involved in the community, need help with setting up, have any issues related with the library or just want to discuss IOTA, Distributed Ledger Technology (DLT) and IoT with other people, feel free to join our Discord.


The MIT license can be found here.