---
title: Wallet & Identity Tools
description: Wallet management, signing, multi-sig, and identity tools for 9+ wallet integrations
---
# Wallet & Identity Tools
**25+ wallet tools** across **9 major wallet integrations** including MetaMask, WalletConnect, Gnosis Safe, Ledger, and ENS domains.
## Wallet Management
### Wallet Creation
**`create_wallet`** - Generate new wallet
```typescript
{
type: 'evm' | 'solana';
saveEncrypted?: boolean;
password?: string;
}
// Returns: address, privateKey (encrypted), mnemonic
```
**`import_wallet`** - Import existing wallet
```typescript
{
source: 'privateKey' | 'mnemonic' | 'keystore';
data: string;
password?: string;
}
```
**`generate_mnemonic`** - Generate BIP39 mnemonic
```typescript
{
strength?: 128 | 256; // 12 or 24 words
}
```
### Wallet Operations
**`sign_message`** - Sign message
```typescript
{
message: string;
walletId: string;
type?: 'personal' | 'typed';
}
```
**`sign_transaction`** - Sign transaction
```typescript
{
transaction: any; // Transaction object
walletId: string;
}
```
**`verify_signature`** - Verify message signature
```typescript
{
message: string;
signature: string;
address: string;
}
```
## Wallet Integrations
### MetaMask
**`metamask_connect`** - Connect MetaMask
```typescript
{
chainId?: number;
}
```
**`metamask_sign`** - Sign with MetaMask
```typescript
{
message: string;
type: 'personal' | 'typed';
}
```
**`metamask_send_transaction`** - Send via MetaMask
```typescript
{
to: string;
value?: string;
data?: string;
gas?: number;
}
```
### WalletConnect
**`walletconnect_init`** - Initialize WalletConnect
```typescript
{
projectId: string;
chains: number[];
methods: string[];
}
```
**`walletconnect_pair`** - Generate pairing URI
```typescript
{
metadata?: {
name: string;
description: string;
url: string;
icons: string[];
};
}
// Returns: uri (QR code data)
```
**`walletconnect_sign`** - Sign via WalletConnect
```typescript
{
session: string;
message: string;
address: string;
}
```
### Gnosis Safe
**`safe_create`** - Create Gnosis Safe
```typescript
{
owners: string[]; // Owner addresses
threshold: number; // Required signatures
chainId: number;
}
```
**`safe_propose_transaction`** - Propose Safe transaction
```typescript
{
safeAddress: string;
to: string;
value: string;
data: string;
operation?: 0 | 1; // 0=call, 1=delegatecall
}
```
**`safe_sign_transaction`** - Sign as Safe owner
```typescript
{
safeAddress: string;
safeTxHash: string;
signature: string;
}
```
**`safe_execute_transaction`** - Execute signed transaction
```typescript
{
safeAddress: string;
safeTxHash: string;
}
```
### Ledger Hardware Wallet
**`ledger_connect`** - Connect Ledger device
```typescript
{
type: 'ethereum' | 'solana';
derivationPath?: string;
}
```
**`ledger_get_address`** - Get address from Ledger
```typescript
{
index: number;
verify?: boolean; // Show on device
}
```
**`ledger_sign`** - Sign with Ledger
```typescript
{
transaction: any;
path: string;
}
```
## Identity & ENS
### ENS Domains
**`ens_resolve`** - Resolve ENS name
```typescript
{
name: string; // e.g., "vitalik.eth"
}
// Returns: address
```
**`ens_reverse_resolve`** - Get ENS from address
```typescript
{
address: string;
}
// Returns: name or null
```
**`ens_set_name`** - Set reverse record
```typescript
{
name: string;
}
```
**`ens_get_records`** - Get all ENS records
```typescript
{
name: string;
}
// Returns: address, avatar, description, twitter, etc.
```
### Unstoppable Domains
**`unstoppable_resolve`** - Resolve UD name
```typescript
{
domain: string; // e.g., "brad.crypto"
currency?: string; // Get specific currency address
}
```
### Lens Protocol
**`lens_get_profile`** - Get Lens profile
```typescript
{
handle: string; // e.g., "lens/vitalik"
}
```
**`lens_create_post`** - Create Lens post
```typescript
{
content: string;
media?: string[];
}
```
## Multi-Signature Tools
### Multi-Sig Creation
**`create_multisig`** - Create multi-sig wallet
```typescript
{
type: 'gnosis' | 'solana-squads';
owners: string[];
threshold: number;
chainId?: number;
}
```
### Multi-Sig Operations
**`multisig_propose`** - Propose multi-sig transaction
```typescript
{
multisigAddress: string;
transaction: any;
description?: string;
}
```
**`multisig_approve`** - Approve proposal
```typescript
{
multisigAddress: string;
proposalId: string;
signature: string;
}
```
**`multisig_execute`** - Execute approved transaction
```typescript
{
multisigAddress: string;
proposalId: string;
}
```
## Usage Examples
### Create and Fund Wallet
```typescript
import { wallets } from '@universal-crypto/tools';
// Create new wallet
const wallet = await wallets.create_wallet({
type: 'evm',
saveEncrypted: true,
password: 'secure-password',
});
console.log(`Address: ${wallet.address}`);
console.log(`Mnemonic: ${wallet.mnemonic}`);
// Fund wallet
await wallets.transfer_eth({
to: wallet.address,
amount: '0.1', // 0.1 ETH
chainId: 1,
});
```
### Multi-Chain Signing
```typescript
// Sign message on multiple chains
const message = 'Login to dApp';
const [ethSig, solSig] = await Promise.all([
wallets.sign_message({
message,
walletId: 'eth-wallet-id',
type: 'personal',
}),
wallets.sign_message({
message,
walletId: 'sol-wallet-id',
}),
]);
// Verify signatures
const ethValid = await wallets.verify_signature({
message,
signature: ethSig,
address: ethAddress,
});
console.log(`ETH signature valid: ${ethValid}`);
```
### Gnosis Safe Multi-Sig
```typescript
// Create Safe with 3 owners, 2 required signatures
const safe = await wallets.safe_create({
owners: ['0xOwner1...', '0xOwner2...', '0xOwner3...'],
threshold: 2,
chainId: 1,
});
console.log(`Safe created: ${safe.address}`);
// Propose transaction
const proposal = await wallets.safe_propose_transaction({
safeAddress: safe.address,
to: '0xRecipient...',
value: '1000000000000000000', // 1 ETH
data: '0x',
});
// Owner 1 signs
await wallets.safe_sign_transaction({
safeAddress: safe.address,
safeTxHash: proposal.safeTxHash,
signature: owner1Signature,
});
// Owner 2 signs
await wallets.safe_sign_transaction({
safeAddress: safe.address,
safeTxHash: proposal.safeTxHash,
signature: owner2Signature,
});
// Execute (now that threshold is met)
await wallets.safe_execute_transaction({
safeAddress: safe.address,
safeTxHash: proposal.safeTxHash,
});
```
### ENS Integration
```typescript
// Resolve ENS name
const address = await wallets.ens_resolve({
name: 'vitalik.eth',
});
// Get full profile
const profile = await wallets.ens_get_records({
name: 'vitalik.eth',
});
console.log(`Address: ${profile.address}`);
console.log(`Avatar: ${profile.avatar}`);
console.log(`Twitter: ${profile.twitter}`);
// Set reverse record
await wallets.ens_set_name({
name: 'myname.eth',
});
```
### WalletConnect Integration
```typescript
// Initialize WalletConnect
const wc = await wallets.walletconnect_init({
projectId: 'your-project-id',
chains: [1, 137, 42161], // Ethereum, Polygon, Arbitrum
methods: ['eth_sendTransaction', 'personal_sign'],
});
// Generate pairing URI
const { uri } = await wallets.walletconnect_pair({
metadata: {
name: 'My DApp',
description: 'Cool crypto app',
url: 'https://mydapp.com',
icons: ['https://mydapp.com/icon.png'],
},
});
// Show QR code with `uri`
console.log(`Scan this: ${uri}`);
// When user connects, sign transaction
const signature = await wallets.walletconnect_sign({
session: sessionId,
message: 'Sign in to DApp',
address: userAddress,
});
```
## Wallet Support Matrix
| Wallet | EVM | Solana | Hardware | Mobile | Multi-Sig |
|--------|-----|--------|----------|--------|-----------|
| **MetaMask** | ✅ | ❌ | ✅ | ✅ | ❌ |
| **WalletConnect** | ✅ | ✅ | ✅ | ✅ | ❌ |
| **Gnosis Safe** | ✅ | ❌ | ✅ | ✅ | ✅ |
| **Ledger** | ✅ | ✅ | ✅ | ❌ | ✅ |
| **Phantom** | ❌ | ✅ | ❌ | ✅ | ❌ |
| **Rainbow** | ✅ | ❌ | ❌ | ✅ | ❌ |
| **Coinbase Wallet** | ✅ | ✅ | ❌ | ✅ | ❌ |
| **Argent** | ✅ | ❌ | ❌ | ✅ | ✅ |
| **Trust Wallet** | ✅ | ✅ | ❌ | ✅ | ❌ |
## Security Best Practices
1. **Never expose private keys** - Use encrypted storage
2. **Use hardware wallets** - For large amounts
3. **Multi-sig for treasury** - Require multiple approvals
4. **Verify transactions** - Always check before signing
5. **Test on testnet** - Before mainnet operations
## Pricing
All wallet tools are **free** - no platform fees for wallet operations.
## Next Steps
- [Wallet Security](/guides/wallets/security) - Best security practices
- [Multi-Sig Guide](/guides/wallets/multisig) - Set up multi-signature wallets
- [ENS Integration](/guides/wallets/ens) - Integrate ENS names
- [Hardware Wallets](/guides/wallets/hardware) - Use Ledger/Trezor