Skip to main content
Import loads credentials (site, username, password and optionally a TOTP secret) from a CSV file over USB serial. It happens after unlocking the device and requires physical authorization via the Center button.
Import overwrites the destination slots without asking. If you already have credentials, create a backup (guide) before continuing.

Before you start

You needHow to get it
The device unlocked with PINPlug it in and enter your PIN
A CSV file with your credentialsA previous export, or an export from 1Password / Bitwarden / Keepass adapted to the format (see below)
A serial toolWeb manager (recommended), screen, minicom, PuTTY at 115200 bps

Step 1 — Open the menu

While on the first credential, press Left. Open the menu from credential 1 Press Left while on credential 1.

Step 2 — Enter the Backup submenu

In the root menu, Backup is selected by default. Press Center. Root menu, Backup selected Press Center.

Step 3 — Select “Import”

Inside Backup, Import is at the top. If it’s not highlighted, press Up to reach it. Then Center. Import selected With Import highlighted, press Center.

Step 4 — Physical authorization

Just like in export, an authorization screen asks for a long Center press before enabling the import channel. Import authorization screen Before continuing, prepare your CSV file on the host. When ready, hold Center for ~1 second. The device sends REQUEST_SAVE over USB serial waiting for the data.
Don’t press Center short by mistake — a short press won’t authorize anything (it just moves to the next menu screen if there is one).

Step 5 — Send the CSV from the host

With the device in “waiting for data” mode, send over USB serial:
  1. A line with the total number of records to import (example: 5).
  2. One CSV line per credential in this format:
    slotIndex,site,username,password[,totpSecret]
    
Full example:
5
0,github.com,alice,MyP@ss123,JBSWY3DPEHPK3PXP
1,gmail.com,bob@gmail.com,correct horse battery staple
2,bank.com,12345678X,s3cur3P@ss,JBSWY3DPEHPK3PXP;algo=SHA256
3,aws-prod,admin,A!7zQ#mYpL2v
4,banca,12345678X,Pin-only2FA
Each line is processed like this:
Host → device:   "0,github.com,alice,MyP@ss123,JBSWY3DPEHPK3PXP"
Device:          AES-128 CBC encrypt → write to EEPROM slot 0
Device → host:   "Record 1 stored correctly."
The web manager has a file picker that sends the lines in the right order and shows progress. If you don’t want to fight with the terminal, use it.

Step 6 — Progress

During import you’ll see the slot being written and overall progress on screen. Import progress When done, the device shows “Import complete” for 1 second and returns to the menu. Press Left to exit to the credential list and verify they’ve been added.

Step 7 — Verify

Press Left repeatedly to exit the menu to the credential list. Navigate with Left/Right and check that the imported data appears. Imported credential on main screen Use Right to walk through the newly imported credentials. If everything looks good, consider making a new backup now.

CSV format

FieldDescriptionLimit
slotIndexTarget slot0–61
siteSite or service16 characters
usernameUsername16 characters
passwordPasswordAny printable ASCII
totpSecret(optional) TOTP secretSee below

Accepted TOTP secret formats

FormatExample
Bare Base32JBSWY3DPEHPK3PXP
Base32 + algorithmJBSWY3DPEHPK3PXP;algo=SHA256
Full otpauth:// URIotpauth://totp/GitHub:alice?secret=JBSWY3DPEHPK3PXP&algorithm=SHA256
Default algorithm if not specified: SHA-1.

Validation and errors

CaseBehaviour
slotIndex outside 0–61Reject the line: "Index out of range"
Invalid Base32Reject the TOTP secret: "TOTP invalid"
Line with fewer than 3 fieldsSkipped with an error log
Empty lineTerminates the import early

Migrating from other managers

To migrate from 1Password, Bitwarden, Keepass and others:
  1. Export to CSV in the source manager.
  2. Adapt the CSV to the ZeroKeyUSB format (a simple Python script — trim each field to 16 chars and reorder columns).
  3. Import following this guide.
There are conversion script templates in the tools repotools/convert_<source>.py.

Next steps

Create a backup

Export the freshly imported data before doing more work.

2FA codes

If you imported TOTP secrets, see how to view and type them.