# Hanzo ID — Hanzo AI

> Extend your IAM to support Web3 identities.

Available Now

# Hanzo ID

Decentralized identity for Web3

Extend your IAM to support Web3 identities. DIDs, Verifiable Credentials, and on-chain attestations—with single sign-on across all Hanzo services and your own applications.

### Decentralized Identifiers (DIDs)

Self-sovereign identity using W3C DID standards. Users own their identity.

### Verifiable Credentials

Issue and verify credentials that users can share across applications.

### On-Chain Attestations

Permanent, verifiable attestations stored on-chain for compliance and reputation.

### Single Sign-On

One identity across all Hanzo services and integrated applications.

[Back to Web3 Overview](https://hanzo.ai/blockchain)

## Get Your API Key

Start building in under 5 minutes

HA

Failover

<50ms

Latency

100+

Chains

Start Building Free

View Documentation

No credit card required. Free tier includes 300M compute units/month.

Trusted by developers building:

DeFiNFTsPaymentsGamingAI Agents

## Key Capabilities

Everything you need, nothing you don&#x27;t.

### Decentralized Identifiers (DIDs)

Self-sovereign identity using W3C DID standards. Users own their identity.

### Verifiable Credentials

Issue and verify credentials that users can share across applications.

### On-Chain Attestations

Permanent, verifiable attestations stored on-chain for compliance and reputation.

### Single Sign-On

One identity across all Hanzo services and integrated applications.

### KYC Integration

Connect to KYC providers and issue verified identity credentials.

### Privacy-Preserving

Zero-knowledge proofs for selective disclosure. Prove attributes without revealing data.

### Credential Types

Built-in schemas for identity, age verification, accreditation, and more.

### Wallet Integration

Store credentials in Hanzo Wallet. Users control their identity.

## Simple to Integrate

Get started with just a few lines of code. SDKs for every language.

Solidity

Node

Python

Go

Rust

C

C++

Ruby

IdentityAttestation.sol

```
// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import "@hanzo/identity/IEAS.sol"; import "@hanzo/identity/ISchemaRegistry.sol"; /// @title IdentityAttestation - On-chain identity and verifiable credentials /// @notice DID-linked attestations using Ethereum Attestation Service (EAS) contract IdentityAttestation { IEAS public eas; ISchemaRegistry public schemaRegistry; // Schema UIDs for different credential types bytes32 public constant KYC_SCHEMA = keccak256("bool verified,uint64 expiry,string provider"); bytes32 public constant AGE_SCHEMA = keccak256("bool ageOver18,bool ageOver21,uint64 verifiedAt"); bytes32 public constant ACCREDITATION_SCHEMA = keccak256("string accreditationType,string jurisdiction,uint64 validUntil"); // DID to attestation mapping mapping(bytes32 => bytes32[]) public didAttestations; event AttestationCreated( bytes32 indexed did, bytes32 indexed attestationId, bytes32 indexed schemaId ); event CredentialRevoked( bytes32 indexed did, bytes32 indexed attestationId ); constructor(address _eas, address _schemaRegistry) { eas = IEAS(_eas); schemaRegistry = ISchemaRegistry(_schemaRegistry); } // Create KYC attestation for a DID function attestKYC( bytes32 did, address recipient, bool verified, uint64 expiry, string calldata provider ) external returns (bytes32 attestationId) { bytes memory data = abi.encode(verified, expiry, provider); AttestationRequest memory request = AttestationRequest({ schema: KYC_SCHEMA, data: AttestationRequestData({ recipient: recipient, expirationTime: expiry, revocable: true, refUID: bytes32(0), data: data, value: 0 }) }); attestationId = eas.attest(request); didAttestations[did].push(attestationId); emit AttestationCreated(did, attestationId, KYC_SCHEMA); } // Create age verification attestation function attestAge( bytes32 did, address recipient, bool ageOver18, bool ageOver21 ) external returns (bytes32 attestationId) { bytes memory data = abi.encode(ageOver18, ageOver21, block.timestamp); AttestationRequest memory request = AttestationRequest({ schema: AGE_SCHEMA, data: AttestationRequestData({ recipient: recipient, expirationTime: 0, // No expiry revocable: true, refUID: bytes32(0), data: data, value: 0 }) }); attestationId = eas.attest(request); didAttestations[did].push(attestationId); emit AttestationCreated(did, attestationId, AGE_SCHEMA); } // Verify an attestation is valid function verifyAttestation(bytes32 attestationId) external view returns ( bool valid, address recipient, uint64 expirationTime, bool revoked ) { Attestation memory attestation = eas.getAttestation(attestationId); valid = attestation.uid != bytes32(0); recipient = attestation.recipient; expirationTime = attestation.expirationTime; revoked = attestation.revocationTime > 0; } // Revoke a credential function revokeCredential(bytes32 did, bytes32 attestationId) external { eas.revoke(RevocationRequest({ schema: KYC_SCHEMA, data: RevocationRequestData({ uid: attestationId, value: 0 }) })); emit CredentialRevoked(did, attestationId); } // Get all attestations for a DID function getAttestations(bytes32 did) external view returns (bytes32[] memory) { return didAttestations[did]; } }
```

## Built For

### Compliant DeFi

Enable permissioned DeFi with verified identity credentials. Meet regulatory requirements while preserving privacy.

### Token Gating

Gate access to content, communities, or features based on verifiable credentials.

### Reputation Systems

Build on-chain reputation from verified credentials and past interactions.

### Cross-App Identity

Users carry their verified identity and reputation across multiple applications.

## Start Building with Hanzo ID

Get your free API key and ship your first request in under 5 minutes. No credit card required.

Get Your API Key

[Explore All Web3 Products](https://hanzo.ai/blockchain)

## Get Hanzo ID

Deploy in seconds or self-host with the open-source release.

[Deploy to Cloud](https://console.hanzo.ai/deploy)
