Mantissa
Passkey-native smart wallet for Mantle L2. Features 🔐 Seedless Authentication - Use device biometrics instead of seed phrases 📱 WebAuthn/FIDO2 - Industry-standard passkey protocol ⛽ ERC-4337
视频
技术栈
描述
Features
🔐 Seedless Authentication - Use device biometrics instead of seed phrases
📱 WebAuthn/FIDO2 - Industry-standard passkey protocol
⛽ ERC-4337 Compatible - Account abstraction ready
🔑 Multi-Owner Support - Add backup passkeys for recovery
⚡ Mantle Optimized - Built for low gas costs on Mantle L2
🏗️ Architecture
┌─────────────────────────────────────────────────────────┐
│ User Device │
│ ┌─────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Biometric │───▶│ Passkey │───▶│ Wallet │ │
│ │ Prompt │ │ (WebAuthn) │ │ SDK │ │
│ └─────────────┘ └──────────────┘ └───────────┘ │
└────────────────────────────┬────────────────────────────┘
│ Sign Transaction
▼
┌─────────────────────────────────────────────────────────┐
│ Mantle L2 │
│ ┌─────────────────┐ ┌───────────────────────────┐ │
│ │ MantissaFactory│───▶│ MantissaWallet (Clone) │ │
│ │ (Deploys Wallets)│ │ • P-256 Signature Verify │ │
│ └─────────────────┘ │ • Execute Transactions │ │
│ │ • Multi-Owner Support │ │
│ └───────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
📦 Packages
Package | Description |
|---|---|
| Solidity smart contracts (Foundry) |
| TypeScript SDK for passkey + wallet integration |
| Next.js demo application |
🚀 Quick Start
Prerequisites
Installation
# Clone the repo
git clone https://github.com/subh/keymantle.git
cd keymantle
# Install dependencies
npm install
# Build all packages
npm run buildRun Demo
# Terminal 1: Start local Mantle forkcd packages/contracts
anvil --fork-url https://rpc.sepolia.mantle.xyz
# Terminal 2: Deploy contracts
PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \
forge script script/Deploy.s.sol --rpc-url http://127.0.0.1:8545 --broadcast
# Terminal 3: Run demo appcd packages/demo
npm run devOpen http://localhost:3000 and click "Create Passkey Wallet"!
📚 Documentation
Smart Contracts
The core contracts implement a passkey-authenticated smart wallet:
MantissaWallet.sol- Smart wallet with P-256 signature verificationMantissaFactory.sol- Factory for deploying wallets (CREATE2)WebAuthnVerifier.sol- On-chain WebAuthn signature verification
See packages/contracts/DEPLOYMENT.md for deployment instructions.
SDK Usage
import { MantissaClient } from '@mantlepass/sdk';
// Initialize clientconst client = new MantissaClient({
rpcUrl: 'https://rpc.sepolia.mantle.xyz',
factoryAddress: '0x...',
});
// Create wallet with passkeyconst wallet = await client.createWallet({
name: 'My Wallet',
});
// Sign and send transactionconst txHash = await client.sendTransaction({
to: '0x...',
value: 1000000000000000000n, // 1 MNTdata: '0x',
});Networks
Network | Chain ID | Factory Address |
|---|---|---|
Mantle Sepolia | 5003 |
|
Mantle Mainnet | 5000 |
|
Local (Anvil) | 5003 |
|
🧪 Testing
# Run contract testscd packages/contracts
forge test -vvv
# Run SDK testscd packages/sdk
npm test🛠️ Development
Project Structure
keymantle/
├── packages/
│ ├── contracts/ # Solidity contracts
│ │ ├── src/ # Contract source files
│ │ ├── test/ # Foundry tests
│ │ └── script/ # Deployment scripts
│ ├── sdk/ # TypeScript SDK
│ │ └── src/
│ │ ├── client/ # MantissaClient
│ │ ├── webauthn/ # Passkey utilities
│ │ └── utils/ # Helpers
│ └── demo/ # Next.js demo app
├── package.json # Monorepo root
└── README.md
Build Commands
# Build everything
npm run build
# Build specific package
npm run build --workspace=packages/sdk
# Run tests
npm test🔐 Security
P-256 (secp256r1) - Hardware-backed elliptic curve cryptography
WebAuthn - W3C standard for passwordless authentication
On-chain verification - All signatures verified by smart contracts
No private key exposure - Keys never leave secure hardware
Audit Status
⚠️ Not audited - This is experimental software. Use at your own risk.
🗺️ Roadmap
Core smart contracts
TypeScript SDK
Demo application
ERC-4337 Bundler integration
Social recovery module
Session keys for dApps
Mobile SDK (React Native)
Hardware wallet backup