A comprehensive toolkit for building, deploying, and managing blueprints on the Tangle Network.
Blueprints are Infrastructure-as-Code templates that allow developers to quickly build crypto services. The Blueprint SDK comes equipped with a variety of tools, from event listeners and p2p networking to flexible keystores, allowing you to rapidly prototype distributed systems. With these tools, developers can get started building anything from oracles to bridge security systems, zk prover networks, AI agent orchestration systems. Deploy these applications on the Tangle Network, Eigenlayer, or natively.
We also have a documentation site on all things Tangle to help you get started.
The following components make up the SDK, providing everything from job creation and routing utilities to specialized tools for networking and testing.
blueprint-sdk
- Main crate for the Tangle Blueprint SDK, re-exporting all of the followingblueprint-benchmarking
- Utilities for benchmarking blueprintsblueprint-build-utils
- Utilities for simplifying build-time tasks (e.g., building contracts, installing dependencies)blueprint-chain-setup
- (Meta-crate) Utilities for setting local testnetsblueprint-chain-setup-common
- Common utilities for setting up testnetsblueprint-chain-setup-anvil
- Utilities for setting up Anvil testnetsblueprint-chain-setup-tangle
- Utilities for setting up Tangle testnets
blueprint-clients
- (Meta-crate) Clients for interacting with Tangle, Eigenlayer, and other networksblueprint-client-tangle
- Client for interacting with the Tangle Networkblueprint-client-eigenlayer
- Client for interacting with the Eigenlayer Networkblueprint-client-evm
- Client for interacting with the EVM Network
blueprint-contexts
- Extensions for adding functionality to custom blueprint context typesblueprint-context-derive
- Derive macros for implementing context extension traitsblueprint-core
- Core components for building blueprints, primarily job system primitivesblueprint-crypto
- (Meta-crate) Cryptographic utilitiesblueprint-crypto-core
- Core cryptographic utilities (traits, types)blueprint-crypto-bls
- Utilities for working with BLS signatures and keysblueprint-crypto-bn254
- Utilities for working with BN254 signatures and keysblueprint-crypto-ed25519
- Utilities for working with Ed25519 signatures and keysblueprint-crypto-k256
- Utilities for working with secp256k1 signatures and keysblueprint-crypto-sp-core
- Blueprint-compatible crypto wrappers around sp-core primitivesblueprint-crypto-sr25519
- Utilities for working with sr25519 signatures and keysblueprint-crypto-tangle-pair-signer
- Pair signer type for Tangle
blueprint-keystore
- Flexible keystore implementation, supporting local and remote signersgadget-macros
- Utility macros for simplifying blueprint developmentblueprint-manager
- A program executor that connects to the Tangle network and runs protocols dynamically on the flyblueprint-metrics
(Meta-crate) Utilities for collecting metricsblueprint-metrics-rpc-calls
- Utilities for collecting metrics from RPC calls
blueprint-networking
- P2P networking support for blueprintsblueprint-networking-round-based-extension
- A networking compatibility layer for round-based MPC protocols
blueprint-producers-extra
- Additional protocol-independent event producersblueprint-router
- A job router for dynamically scheduling jobsblueprint-runner
- The blueprint job runner, executing jobs in a protocol-specific mannerblueprint-std
- Standard library extensions, for use within the SDKblueprint-stores
- (Meta-crate) Storage providers for blueprintsblueprint-store-local-database
- A local JSON key-value database
blueprint-tangle-extra
- Tangle specific extensions for blueprintsblueprint-evm-extra
- EVM specific extensions for blueprintsblueprint-eigenlayer-extra
- Eigenlayer specific extensions for blueprintsblueprint-testing-utils
- (Meta-crate) Utilities for testing blueprintsblueprint-core-testing-utils
- Core testing utility primitivesblueprint-anvil-testing-utils
- Utilities for creating and interacting with Anvil testnetsblueprint-tangle-testing-utils
- Utilities for creating end-to-end tests for Tangle blueprintsblueprint-eigenlayer-testing-utils
- Utilities for creating end-to-end tests for Eigenlayer blueprints
Ensure you have the following installed:
- Rust
- OpenSSL Development Packages
sudo apt update && sudo apt install build-essential cmake libssl-dev pkg-config
brew install openssl cmake
You can install the Tangle CLI in two ways:
Install the latest stable version of cargo-tangle
using the installation script:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tangle-network/gadget/releases/download/cargo-tangle/v0.1.1-beta.7/cargo-tangle-installer.sh | sh
Install the latest git version of cargo-tangle
using the following command:
cargo install cargo-tangle --git https://github.com/tangle-network/gadget --force
After installation, you can create, build, and deploy your first blueprint using the following commands:
# Create a new blueprint named "my_blueprint"
cargo tangle blueprint create --name my_blueprint
# Navigate into the blueprint directory and build
cd my_blueprint
cargo build
# Deploy your blueprint to the Tangle Network
cargo tangle blueprint deploy --rpc-url wss://rpc.tangle.tools --package my_blueprint
And your blueprint is ready to go!
For additional commands, advanced configurations, and complete CLI usage, see the official CLI reference.
For support or inquiries:
- Issues: Report bugs or request features via GitHub Issues.
- Discussions: Engage with the community in GitHub Discussions.
- For real-time assistance and announcements:
- Join our Discord server
- Join our Telegram channel
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
We welcome feedback and contributions to improve this blueprint. Please open an issue or submit a pull request on our GitHub repository. Please let us know if you fork this blueprint and extend it too!
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.