Carte Bleue

Recover any smart wallet using real credit cards and a standard cheap card reader.

Carte Bleue

Created At

ETHGlobal Lisbon 2026

Project Description

Carte Bleue lets users recover a smart contract wallet using a physical bank card instead of a seed phrase or other unsecure methods. A local Python server communicates with the card reader, extracts the card’s RSA public key, and asks the card to sign a random challenge. A smart contract on Base verifies that signature and changes the wallet owner to a new address. The private key never leaves the card, and sensitive payment details such as the card number or expiration date are never stored on-chain.

Please note that the project purposefully has no live demo as this is something you can only run on your own machine as you need a local Python server that will securely read your credit card. Instructions on how to run are on GitHub.

Fun fact: "Carte Bleue" was a credit card network competing with Mastercard/Visa developed in France, but got discontinued in 2010, the name is a small reference to it, repurposing it for secure wallet backups.

How it's Made

Carte Bleue combines a local Python/FastAPI server, PC/SC card-reader access, an ethers.js frontend, MetaMask, and Solidity contracts on Base. The server sends raw EMV APDU commands to a CB bank card, reconstructs its 1408-bit RSA public key from the EMV certificate chain, and requests signatures through INTERNAL AUTHENTICATE. The frontend registers that public key for a SimpleWallet (smart contract wallet), then submits signed recovery challenges to Carte Bleue. The notable hack was implementing custom on-chain RSA verification with the EVM modexp precompile because standard libraries reject the card’s unusual 1408-bit key size.

background image mobile

Join the mailing list

Get the latest news and updates