Internet of People (IoP) is a software project creating a decentralized software stack that provides the building blocks and tools to support a decentralized society.
This repository contains our Rust codebase that serves as common implementation and used with different bindings (WebAssembly, C FFI) in SDKs for other languages like Typescript or Dart as well.
After installing Rust using rustup, use the iop-sdk
crate with the latest version as a dependency with cargo
in file Cargo.toml
of your project.
You can read a overview and descriptions of different components on our developer portal. We especially suggest reading glossary page for a detailed explanation of terms, concept and design principles of different software stack components.
json-digest
provides a canonical Json format, derived content IDs and selectively building Merkle trees from parts of a Json documentkeyvault
implements a "generic cryptographic calculator": starting from a list of words it can deterministically derive an enormous number of private keys for any purpose like cryptocurrency addresses, DIDs, device keys, etc.vault
adds encryption support, pluggability with state handling and persistence to the pure calculator features of thekeyvault
morpheus
supports Self-Sovereign Identity (SSI) with Decentralized Identifiers (DIDs) and Verifiable Claims/Credentials (VCs). It defines a state machine for keeping a queriable history of DIDs, their keys and rights with atomic transactions to change the state.coeus
implements a generic decentralized naming system (DDNS). It defines a state machine for managing resolvable names with atomic transactions to change the state.hydra
supports using the Hydra blockchain by building transactions for cryptocurrency operations (transfer, delegate voting, etc), or custom transactions with SSI and DNS operations.sdk
exports features of libraries above for clients in a single crate