Your cards and papers on this phone only

Bank cards, loyalty cards and documents, encrypted on your phone. The app has no permission to go online.

  • No internet permissionNothing to sync, nothing to leak
  • PIN locked in hardwareEach guess runs through the phone's secure chip
  • Decoy PINOpens a second wallet to show under pressure
  • Duress PINDestroys the keys and opens an empty wallet

Your cards drop into one stack

Everything you carry, in one stack

Cards and documents lie in a stack, the way they do in the app. Each one shows its name; tap a strip to open it.

Point the camera and the number types itself

Cardico reads the card number, expiry date and name from a photo. Text recognition runs on the phone, so the picture never leaves it.

  • Card numbers checked with the Luhn digit
  • Copy a number in one tap when a checkout asks for it
  • Cards show your own colours and icons

Every barcode at the till, at full brightness

Scan a card with the camera or pick a screenshot from the gallery. Cardico stores the code exactly as printed and redraws QR and linear codes so a scanner reads them first time.

  • QR, EAN, UPC, Code 39, 93 and 128, ITF, Codabar, Aztec, PDF417, Data Matrix
  • No code on the card? Save it as a photo

Send a passport scan that cannot be reused

Black out what the hotel does not need: the number, the photo, the signature. Write who the copy is for. That line and today's date run across the whole page, so a cropped corner still carries them.

  • The image is redrawn, so the photo's metadata stays behind
  • The temporary file is deleted when the share sheet closes

Move to a new phone with one file

Save every card, document and page photo into one encrypted file, in a folder you choose. Cardico shows a 20-character code once. Write it on paper: the app keeps no copy, and without it nobody can open the file, you included.

  • Restoring twice adds nothing twice
  • A cut, altered or reordered file is rejected as a whole

Find a card by its name, not by scrolling

Every card shows a strip with its name and menu. The next one covers the rest, and the last lies open. One screen shows seven to nine names instead of three cards. Hold and drag a strip to reorder.

A short clip next to every feature

Tap the question mark beside a feature. A drawn phone plays the steps in a loop and a caption explains each one. The clips are built from the app's own interface, so they stay small and translate with the rest of the text.

  • With reduced motion turned on, the clip stands still and you page through it

For the day someone makes you unlock it

A border check, a robbery, a jealous partner. Cardico gives you a second wallet to show and a PIN that destroys the real one. From outside, each looks like a normal unlock.

9:41

Unlock Cardico

UNLOCKING…

Tap a PIN or type it on the pad

Demo PINs for this page. In the app you choose your own four digits.

Decoy wallet

Settings look the same in both wallets, so nothing on screen tells which PIN opened the app. A correct PIN does not reset the count of wrong tries.

Hidden vault

A second store with its own 6-digit code. Its contents live inside a file of random bytes that every install carries from the first launch, filled or not.

Duress alert Soon

Planned for a future version: the duress PIN quietly tells a person you trust that someone forced you to open Cardico.

What stands between a thief and your cards

The phone's own hardware does the heavy lifting. Copying the app's files to another device gets an attacker nothing.

No internet
The internet permission is blocked when the app is built. Android does not let Cardico open a connection.
android.permission.INTERNET · blocked
Encryption
Everything except the order of items is encrypted in the database. Page photos are separate encrypted files.
AES-256-GCM
PIN
Your PIN runs 48 times through a key that never leaves the phone's secure hardware. A wrong PIN simply fails to open the wrapped key; there is no stored PIN to compare against.
HMAC · Android Keystore · 48 rounds
Wrong tries
After five wrong PINs, pauses grow longer. Errors are forgotten a day after the last one.
5 tries, then growing pauses
Fingerprint and face
Biometrics open a separate copy of the key that the Keystore hands out only after a successful check.
Separate Keystore key copy
Backup
The key comes from your backup code, not from the phone, so the file opens on a new device.
argon2id · t=2 · 19 MiB · 100 bits
Phone backups
Android cloud backup is turned off for Cardico. Your data leaves the phone only in a file you save yourself.
allowBackup=false

What Cardico does not do

It does not pay

Cardico stores cards and shows their numbers and codes. It is not a contactless payment app.

Hardware PIN protection on Android only

On Android 8.0 and later every PIN guess passes through the phone's secure chip. The iPhone beta keeps the key in the Keychain and counts the rounds in the app; a Secure Enclave version is not built yet.

Root removes the pause

On a rooted phone the pause between wrong tries can be skipped. Each guess still has to pass through the hardware key on that phone. Cardico warns you in Settings if it sees signs of root.

No cloud copy

Lose the phone without a backup file and its code, and the data is gone. That is the cost of keeping it on one device.

Asked before installing

Where exactly is my data?

In the app's private storage on your phone, encrypted. The app has no internet permission and Android cloud backup is off, so there is no server copy anywhere.

Why does it ask for the camera?

To photograph a card or a document page and read the number or barcode. Recognition runs on the phone. You can also pick an image from the gallery instead.

What if I forget my PIN?

Nobody can reset it, Cardico included. Restore from your backup file with its code on a fresh install. Without both, the data stays locked.

Can someone tell that I have a decoy wallet?

Not from the screen: both wallets look and work the same, and settings do not change between them. Someone who reads the database file with root can see that some rows are not readable by the open wallet, but not whether they belong to one wallet or two.

How do I join the beta?

Write to me through the contact page with the email of your Google or Apple account. Android testers install Cardico from Google Play, iPhone testers from TestFlight.

What languages does it speak?

English and Russian, including the in-app clips.

Cardico is in beta testing

Testers install it from Google Play on Android and from TestFlight on iPhone. Send me the email of your Google or Apple account to join.

Version 1.3.2 · Android 8.0 and later through Google Play testing · iPhone through TestFlight