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
๐ 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
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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 โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Package | Description |
|---|---|
| Solidity smart contracts (Foundry) |
| TypeScript SDK for passkey + wallet integration |
| Next.js demo application |
# Clone the repo
git clone https://github.com/subh/keymantle.git
cd keymantle
# Install dependencies
npm install
# Build all packages
npm run build# 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"!
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.
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',
});Network | Chain ID | Factory Address |
|---|---|---|
Mantle Sepolia | 5003 |
|
Mantle Mainnet | 5000 |
|
Local (Anvil) | 5003 |
|
# Run contract testscd packages/contracts
forge test -vvv
# Run SDK testscd packages/sdk
npm testkeymantle/
โโโ 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 everything
npm run build
# Build specific package
npm run build --workspace=packages/sdk
# Run tests
npm testP-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
โ ๏ธ Not audited - This is experimental software. Use at your own risk.
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