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 byDelegationScope - Autonomous agent (
did:tenzro:machine:{uuid}) — self-sovereign machine, no controller
§Key Features
- Unified identity type —
TenzroIdentitycovers 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