| Crates.io | tnt-core-bindings |
| lib.rs | tnt-core-bindings |
| version | 0.7.2 |
| created_at | 2025-12-10 09:42:10.321362+00 |
| updated_at | 2026-01-23 22:45:09.498203+00 |
| description | Rust bindings for TNT Core Solidity contracts (Tangle restaking protocol) |
| homepage | https://tangle.tools |
| repository | https://github.com/tangle-network/tnt-core |
| max_upload_size | |
| id | 1977753 |
| size | 11,783,025 |
Rust bindings for TNT Core Solidity contracts, generated using Alloy.
[dependencies]
tnt-core-bindings = "0.1"
use alloy::providers::ProviderBuilder;
use tnt_core_bindings::{ITangle, IMultiAssetDelegation};
#[tokio::main]
async fn main() -> eyre::Result<()> {
let provider = ProviderBuilder::new()
.on_builtin("https://rpc.tangle.tools")
.await?;
// Interact with the Tangle contract
let tangle = ITangle::new(tangle_address, &provider);
let blueprint = tangle.getBlueprint(0.into()).call().await?;
println!("Blueprint owner: {:?}", blueprint.owner);
// Interact with MultiAssetDelegation interface (facet ABI)
let mad = IMultiAssetDelegation::new(mad_address, &provider);
let operator = mad.operators(operator_address).call().await?;
println!("Operator stake: {:?}", operator.stake);
Ok(())
}
| Contract | Description |
|---|---|
ITangle |
Main Tangle protocol interface (blueprints, services, jobs) |
ITangleFull |
Full Tangle surface (includes slashing + admin) |
ITangleBlueprints |
Blueprint registration and management |
ITangleServices |
Service lifecycle management |
ITangleJobs |
Job submission and results |
ITangleOperators |
Operator registration and status |
ITangleSlashing |
Slashing mechanism |
ITangleRewards |
Reward distribution |
IMultiAssetDelegation |
Multi-asset staking and delegation (facet ABI) |
MultiAssetDelegation |
Router/diamond management ABI |
IBlueprintServiceManager |
Blueprint service manager interface |
IOperatorStatusRegistry |
Operator status tracking |
JSON ABIs are available for downstream tooling:
use tnt_core_bindings::abi;
// Access raw ABI JSON strings
let tangle_abi = abi::ITANGLE;
let tangle_full_abi = abi::ITANGLE_FULL;
let mad_abi = abi::IMULTI_ASSET_DELEGATION;
Each release is tied to a specific TNT Core commit:
use tnt_core_bindings::TNT_CORE_VERSION;
println!("Built from commit: {}", TNT_CORE_VERSION);
To regenerate bindings from the Solidity source:
cargo xtask gen-bindings
This requires Foundry to be installed.
Licensed under either of:
at your option.
Contributions are welcome! Please see the main repository for contribution guidelines.