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
Videos
Tech Stack
Description
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