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
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
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.
Progress During Hackathon
We used tools such as Foundry. Got to learn Solidity concepts to integrate the tech with Mantle, used the documentation. Also studied WebAuthn Protocol.