Skip to main content

Crate tenzro_identity

Crate tenzro_identity 

Source
Expand description

Tenzro Decentralized Identity Protocol (TDIP)

A unified identity protocol for humans and machines on the Tenzro Network. TDIP provides W3C DID-compatible decentralized identifiers with verifiable credentials, delegation scopes, and automatic wallet provisioning.

§Overview

TDIP is the identity standard for the Tenzro Network. It recognises three identity classes:

  • Human (did:tenzro:human:{uuid}) — KYC-tiered, credential-holding
  • Delegated agent (did:tenzro:machine:{controller}:{uuid}) — machine under a human controller, scoped by DelegationScope
  • Autonomous agent (did:tenzro:machine:{uuid}) — self-sovereign machine, no controller

§Key Features

  • Unified identity typeTenzroIdentity covers both humans and machines
  • W3C DID Documents — Export/import identities as standard DID Documents
  • Verifiable Credentials — Issue, inherit, and verify W3C VC-compatible credentials
  • Delegation Scopes — Fine-grained control over machine permissions including payment protocol restrictions and chain allowlists
  • Auto-provisioned wallets — Every identity gets an MPC wallet automatically
  • Cascading revocation — Revoking a human revokes all controlled machines

§Examples

use tenzro_identity::registry::IdentityRegistry;
use tenzro_identity::delegation::DelegationScope;
use tenzro_types::identity::KycTier;

let registry = IdentityRegistry::new();

// Register a human identity
let human = registry.register_human_with_fee(
    vec![1; 32],
    "Alice".to_string(),
    KycTier::Enhanced,
).await?.identity;

// Register a machine under the human
let machine = registry.register_machine_with_fee(
    &human.did_string(),
    vec![2; 32],
    vec!["inference".to_string()],
    DelegationScope::unrestricted()
        .with_max_transaction_value(10_000)
        .with_allowed_payment_protocols(vec!["mpp".to_string()]),
).await?.identity;

println!("Human DID: {}", human.did_string());
println!("Machine DID: {}", machine.did_string());

Re-exports§

pub use car::IdentityCarBundle;
pub use credential::sign_credential_hybrid;
pub use credential::CredentialProof;
pub use credential::TenzroCredentialType;
pub use credential::VerifiableCredential;
pub use delegation::DelegationEntry;
pub use delegation::DelegationScope;
pub use delegation::TimeBound;
pub use derivation::evm_address;
pub use derivation::stellar_strkey;
pub use derivation::xrpl_classic_address;
pub use derivation::ChainDerivation;
pub use derivation::DerivationError;
pub use derivation::TargetChain;
pub use derivation::TargetCurve;
pub use did::DidType;
pub use did::TenzroDid;
pub use envelope::canonical_preimage;
pub use envelope::params_hash;
pub use envelope::verify_envelope;
pub use envelope::EnvelopeError;
pub use envelope::TenzroDidEnvelope;
pub use document::DidDocument;
pub use document::DidService;
pub use document::VerificationMethod;
pub use erc8004::agent_id_from_uint256_be;
pub use erc8004::agent_id_to_uint256_be;
pub use erc8004::AgentRecord;
pub use erc8004::Erc8004Adapter;
pub use erc8004::Erc8004Addresses;
pub use erc8004::Erc8004Transport;
pub use erc8004::EthAddress;
pub use erc8004::FeedbackEntry;
pub use erc8004::MetadataEntry;
pub use erc8004::OnChainAgentRegistry;
pub use erc8004::ValidationRequest;
pub use erc8004::ValidationResult;
pub use erc8004_daml::DamlAgentRecord;
pub use erc8004_daml::DamlPackageIds;
pub use erc8004_daml::Erc8004DamlTransport;
pub use erc8004_daml::OnChainAgentDamlRegistry;
pub use erc8004_daml::PackageId;
pub use erc8004_daml::PartyId;
pub use erc8004_svm::Erc8004SvmTransport;
pub use erc8004_svm::OnChainAgentSvmRegistry;
pub use erc8004_svm::SolPubkey;
pub use erc8004_svm::SvmAgentRecord;
pub use error::IdentityError;
pub use error::Result;
pub use identity::validate_username;
pub use identity::IdentityData;
pub use identity::IdentityStatus;
pub use identity::KeyPurpose;
pub use identity::PublicKeyInfo;
pub use identity::RevocationEntry;
pub use identity::ServiceEndpoint;
pub use identity::TenzroIdentity;
pub use kya::compute_kya_level;
pub use kya::is_kya_service_type;
pub use kya::AuthenticatorBinding;
pub use kya::KyaLevel;
pub use kya::KyaRecord;
pub use kya::SERVICE_TYPE_MASTERCARD_KYA;
pub use kya::SERVICE_TYPE_STRIPE_SPT;
pub use kya::SERVICE_TYPE_TEMPO_ACCOUNT;
pub use kya::SERVICE_TYPE_VISA_TAP;
pub use registry::DelegationPolicy;
pub use registry::DidResolutionBackend;
pub use registry::IdentityRegistry;
pub use registry::RegistrationResult;
pub use registry::RevocationBroadcaster;
pub use registry::SignedRevocationEntry;
pub use verification::IdentityVerifier;
pub use verification::TrustChainResult;
pub use w3c::extract_public_keys_from_document;
pub use w3c::identity_to_did_document;
pub use wallet_binding::WalletBinder;
pub use wallet_binding::WalletBinding;

Modules§

car
Portable identity export bundles in CARv1 + DAG-CBOR (C.6).
credential
Verifiable credentials for the Tenzro Decentralized Identity Protocol
delegation
Delegation scopes and entries for the Tenzro Decentralized Identity Protocol
derivation
Chain-derivation layer (stellar/xrpl/hyperliquid integration, Phase 2).
did
Tenzro DID parsing and types
document
W3C DID Document types
envelope
Protocol-neutral Tenzro DID envelope (interop bridge Layer 1).
erc7683
ERC-7683 gasless cross-chain order verification (Permit2 witness).
erc8004
ERC-8004 — Trustless Agents Identity / Reputation / Validation registry adapter.
erc8004_daml
ERC-8004 Canton/DAML port — command builders + transport abstraction.
erc8004_svm
ERC-8004 Solana port — calldata builders + transport abstraction.
error
Error types for the Tenzro Decentralized Identity Protocol
identity
Unified identity types for the Tenzro Decentralized Identity Protocol
ivms101
Travel Rule data envelope per IVMS101.
keri
KERI (Key Event Receipt Infrastructure) compatibility layer.
kya
Know Your Agent (KYA) — DID-anchored federation primitives.
registry
Identity registry for the Tenzro Decentralized Identity Protocol
verification
Identity verification for the Tenzro Decentralized Identity Protocol
w3c
W3C DID Document conversion functions
wallet_binding
Wallet binding for the Tenzro Decentralized Identity Protocol