Hanzo Wallet
Unified wallet infrastructure for Web3
A complete wallet solution for Lux and EVM chains. Offer embedded wallets for seamless user onboarding or server wallets for programmatic access—all with enterprise-grade key management.
Embedded Wallets
Non-custodial wallets that live in your app. Social login, passkeys, and email authentication.
Server Wallets
Programmatic wallet access for backend services. Sign transactions server-side securely.
MPC Key Management
Multi-party computation ensures no single point of failure for private keys.
Multi-Chain Support
One wallet SDK for Lux, Ethereum, Polygon, and all major EVM chains.
Get Your API Key
Start building in under 5 minutes
No credit card required. Free tier includes 300M compute units/month.
Trusted by developers building:
Key Capabilities
Everything you need, nothing you don't.
Embedded Wallets
Non-custodial wallets that live in your app. Social login, passkeys, and email authentication.
Server Wallets
Programmatic wallet access for backend services. Sign transactions server-side securely.
MPC Key Management
Multi-party computation ensures no single point of failure for private keys.
Multi-Chain Support
One wallet SDK for Lux, Ethereum, Polygon, and all major EVM chains.
HSM Integration
Hardware Security Module support for enterprise-grade key protection.
Transaction Policies
Define spending limits, allowlists, and approval workflows.
Biometric Auth
Support for FaceID, TouchID, and WebAuthn for secure authentication.
Account Abstraction
ERC-4337 support for gasless transactions and session keys.
Simple to Integrate
Get started with just a few lines of code. SDKs for every language.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@hanzo/wallet/IHanzoWallet.sol";
import "@hanzo/wallet/IWalletFactory.sol";
import "@openzeppelin/contracts/proxy/Clones.sol";
/// @title WalletFactory - Deploy Hanzo embedded wallets
contract WalletFactory is IWalletFactory {
address public immutable walletImplementation;
mapping(bytes32 => address) public userWallets;
event WalletCreated(bytes32 indexed userId, address wallet);
constructor(address _implementation) {
walletImplementation = _implementation;
}
// Create deterministic wallet for user
function createWallet(
bytes32 userId,
address owner,
address[] calldata guardians
) external returns (address wallet) {
require(userWallets[userId] == address(0), "Wallet exists");
// Deploy minimal proxy clone
bytes32 salt = keccak256(abi.encode(userId, owner));
wallet = Clones.cloneDeterministic(walletImplementation, salt);
// Initialize the wallet
IHanzoWallet(wallet).initialize(owner, guardians);
userWallets[userId] = wallet;
emit WalletCreated(userId, wallet);
}
// Predict wallet address before deployment
function predictWalletAddress(
bytes32 userId,
address owner
) external view returns (address) {
bytes32 salt = keccak256(abi.encode(userId, owner));
return Clones.predictDeterministicAddress(
walletImplementation,
salt,
address(this)
);
}
// Check if wallet exists for user
function hasWallet(bytes32 userId) external view returns (bool) {
return userWallets[userId] != address(0);
}
// Get wallet for user
function getWallet(bytes32 userId) external view returns (address) {
return userWallets[userId];
}
}Built For
Consumer Apps
Onboard users without seed phrases. Email, social, or passkey authentication with instant wallet creation.
Gaming
Invisible wallets for in-game assets. Players interact with NFTs without crypto complexity.
Backend Automation
Programmatic signing for bots, treasury management, and automated transactions.
Enterprise Treasury
Secure key management with HSM integration, audit logs, and policy controls.
Supported Chains
Start Building with Hanzo Wallet
Get your free API key and ship your first request in under 5 minutes. No credit card required.
Get Hanzo Wallet
Deploy in seconds or self-host with the open-source release.