PR3DICT PR3DICTPhysical paper wallet redemption Local processing only

Master [N]era's physical tip

Unlock your physical PR3DICT paper wallet.

Three private steps. Two QR codes. One word hidden on the note. Your images, password, and private key never leave this browser.

Redeem locally

Keep the note in front of you.

Use close-up photos. Do not photograph the whole paper wallet: the surrounding QR codes can confuse a single-code scanner.

01Public wallet
02Encrypted key
03Word and verify
Step 01

Scan the large QR on the left

Waiting

This QR contains the public wallet address printed near the bottom of the paper wallet. It is safe to scan.

Use the large square beside the PR3DICT emblem, on the left side.
or paste the value
Paste the 42-character EVM address from the left QR.
Waiting for the large QR on the left.
Step 02

Scan the large QR on the right

Waiting

This QR contains 76 encrypted bytes. A normal wallet cannot import it until it is unlocked with the word on your note.

Use the large square beside Master [N]era, on the right side.
or paste the value
Paste the complete 76-byte value as HEX or Base64.
Waiting for the large QR on the right.
Step 03

Enter the name hidden in the small QR codes

Waiting

Scan the small border QR codes with your phone until one shows a person's name. Type it exactly, including capital letters. The name appears more than once.

Your word and key stay in this browser only.

Open redemption standard

No dependence on PR3DICT.

The paper wallet format is public. Any developer or locally operating coding AI can recreate the decoder from this section without access to our private files.

Do not upload the QR and password to a remote AI service. Ask it to produce code that runs locally, then use that local code yourself.

Download the independent PDF
What each QR contains

The large left QR is a normal EVM public address. The large right QR is raw binary data, not text and not a MetaMask keystore. The small border codes contain clues and one repeated name used as the case-sensitive password.

Exact 76-byte format
OffsetLengthField
016scrypt salt
1612AES-GCM IV
2832Encrypted private key
6016Authentication tag

Reject the payload unless its decoded binary length is exactly 76 bytes.

Key derivation and cipher

Encode the password as UTF-8 without changing case. Derive 32 bytes using scrypt with N=16384, r=8, and p=1. Decrypt the 32-byte ciphertext using AES-256-GCM, the 12-byte IV and 16-byte tag. There is no additional authenticated data.

Language-neutral pseudocode
packed = QR.decodeBinary(image)
assert length(packed) == 76

salt       = packed[0:16]
iv         = packed[16:28]
ciphertext = packed[28:60]
authTag    = packed[60:76]

key = scrypt(UTF8(password), salt,
             N=16384, r=8, p=1, length=32)

privateBytes = AES_256_GCM_DECRYPT(
    key, iv, ciphertext, authTag, additionalData=NONE)

assert length(privateBytes) == 32
privateKey = "0x" + lowercaseHex(privateBytes)
derivedAddress = EVM_ADDRESS_FROM_PRIVATE_KEY(privateKey)
assert equalIgnoreCase(derivedAddress, publicAddressFromLeftQR)
Instructions for a coding AI

Ask the AI to implement the pseudocode as a local, offline program. Require a QR decoder that returns raw binary bytes, scrypt with the exact parameters above, AES-256-GCM authentication, and EVM address verification before displaying the key. Tell it never to send inputs or results over a network and never to log the private key.

Why MetaMask cannot read the right QR directly

The compact payload deliberately removes the JSON field names and metadata found in a standard Ethereum keystore. This reduced the printed QR from roughly 77×77 modules to 33×33 modules, making physical scanning reliable. The tradeoff is that a compatible decoder must reconstruct the known format before MetaMask import.

The website is a convenience, not a gatekeeper.

The algorithm above is sufficient to recover any existing PR3DICT paper wallet independently. The website performs the same operations locally and adds a safer interface for non-technical holders.