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
Video
Công nghệ sử dụng
Sự miêu tả
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
Team Bio:
Eric:
Audio Visual Professional with over a decade of history working in the corporate event and film production services. Played a vital role in producing over 420+ corporate events. Strong arts and design professional, skilled in Photography, Adobe Creative Cloud, Autodesk, Microsoft computers, and software. Working capabilities with HTML5, CSS, Java, JavaScript, React. Focused on VR/AR, Blockchain, and game development in Unity and Unreal Engines in my free time.
Shub:
I like building things in Rust,
mostly tools and experiments
that solve problems I face myself. I believe the best way to
learn is by doing, breaking things, and rebuilding them
better.
My PRs are in Surfpool and Scilla.
Ivc:
Over the past few years, I've had the privilege of working with incredible people on projects that pushed boundaries. We've won hackathons, earned grants, and built things people actually use.
But here's what I've learned: the real win isn't the prize money or the recognition. It's finding the right people who stick around after the confetti falls.
I create digital experiences that blend art with technology—from immersive audio-visual pieces to interactive NFTs and Web3 applications. Every project is an opportunity to push creative boundaries and build something meaningful.