- ✕Everything leaves in one transaction
- ✕A signed permit drains your tokens later
- ✕No second factor and no way back
A stolen key
isn't enough.
A smart account whose second factor lives in the contract. Your PIN, spending limit and trusted addresses are encrypted on-chain, so whoever steals your key can't drain the account — or even see the rules.
Open source · MITResearch prototype, not audited
The problem
Keys leak. A phishing page, malware, a seed phrase in a cloud backup. Once someone has your key, a regular wallet gives them everything — in one transaction.
2FA, guardians and co-signers usually live on servers or with other people. Encrypted Account puts the second factor where the money is: in the contract.
Same key, different ending
What a thief can do with your key
- ✓New addresses need your PIN, which the thief doesn't have
- ✓About 12 guesses a month at most, each one counted on-chain
- ✓Limits and trusted addresses are hidden, even from the key holder
- ✓A permit signed with the key alone is void
- ✓An escape sends everything to your backup address
How it works
A PIN the contract checks without ever seeing it
Fully homomorphic encryption lets the contract compare encrypted values. The PIN is never decrypted; only the yes-or-no answer is.
-
01
Set a PIN
Your browser stretches it with Argon2id and encrypts the fingerprint. The PIN itself never leaves the page.
-
02
Send as usual
Everyday transfers to addresses you trust stay within your hidden limit. Anything unusual opens a PIN check with a fresh challenge.
-
03
Checked under FHE
The contract compares encrypted values and records the attempt before anyone learns the result.
-
04
Only yes or no comes out
Zama's threshold network decrypts a single bit. Correct: the transfer goes. Wrong: nothing moves, and the next try waits longer.
Under the hood
Built for the day your key leaks
Every guess counts
Attempts are written on-chain before the result is decrypted. From the third wrong guess, the wait grows from 15 minutes up to 7 days.
A tripwire nobody knows
Your limit hides a random threshold somewhere inside it. Not even you know where.
An encrypted address book
30 recipients and 10 spenders, stored as ciphertext. The key holder can't read them.
An escape without FHE
If your key leaks, start an escape: after a delay, funds can only go to your backup address. Even if the thief starts it.
No 2FA server
The second factor is not a code from an app or a server. Its state and its rules live in the contract.
Open and measured
The contracts were deployed and measured on Sepolia end to end: latency, gas and FHE cost. Every number in the repository points to raw data.
Try it on Sepolia
See it for yourself
Create an account in about two minutes, send with your PIN, then try a wrong one and watch it get counted.
You need a browser wallet and a little Sepolia ETH. Testnet only.
Roadmap