hackquest logo

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

视频

技术栈

Solidity
Python

描述

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

packages/contracts

Solidity smart contracts (Foundry)

packages/sdk

TypeScript SDK for passkey + wallet integration

packages/demo

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 build

Run 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 dev

Open 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 verification

  • MantissaFactory.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

0x876DBabB4A37cCB97D5ca4285444f1BcE06220a6

Mantle Mainnet

5000

TBD

Local (Anvil)

5003

0xae13506deae7f82ea5c1c646d0b6693b220a4bb8

🧪 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

队长
SSiddhesh Scindia
项目链接
赛道
Other