Collections

LuckyLurker Bitcoin Vault puzzles

Paul Jones's Bitcoin Vault puzzles. Verify Vault 1's Electrum seed and claimed prize. Vault 2 has 1 BTC with public hints due October 12.

Two vaults, two different states: the first is solved, the second has a funded 1 BTC prize. Both come from Paul Jones, identified on LuckyLurker's About page and posting as Paul_LuckyLurker on BitcoinTalk.

load
getCollection("luckylurker")
puzzles
2 · 1 solved · 1 unsolved
prize recorded
1.0008 BTC
still unsolved
1 BTC
known material
1 public keys · 1 private keys
bitcoinstarted 2026-03-16 to 2026-09-11 open luckylurker/vault_1 in the playground

Bitcoin Vault #1 solution

Paul announced the hunt on March 16, 2026 at 17:54:03 UTC. Twelve riddles pointed to twelve seed words; four sent readers to articles elsewhere on the site. The vault page dates its public hints from March 17 to March 22. The earlier forum announcement sets the puzzle's start date.

Each hint keeps its original wording in text. The word published after it was solved lives in answer, with its own source. Folding that word back into the clue would erase what participants actually had to solve.

Electrum seed and derivation path

The published phrase is:

visit kingdom unveil kangaroo deposit found great grid remind science umbrella spot

It's an Electrum SegWit seed, not BIP39, despite what the author's recap calls it. The distinction matters: BIP39 rejects its checksum, and skipping that check still produces the wrong wallet.

The phrase has Electrum seed version 100. With an empty passphrase, m/0'/0/1 gives the funded address: the second receiving address, not the first. Electrum's mnemonic code uses the salt electrum, and its keystore starts this account at m/0'. BIP84 isn't the right path here.

Verify the published seed

This check uses @scure/bip32 2.4.0 and @agntn/keys 0.3.0. It matches both the funded address and the public key exposed in the claim transaction.

import assert from "node:assert/strict";
import { createHmac, pbkdf2Sync } from "node:crypto";
import { HDKey } from "@scure/bip32";
import { Bitcoin } from "@agntn/keys/blockchains/bitcoin";

const phrase =
  "visit kingdom unveil kangaroo deposit found great grid remind science umbrella spot";
assert.ok(createHmac("sha512", "Seed version").update(phrase).digest("hex").startsWith("100"));
const seed = pbkdf2Sync(phrase, "electrum", 2048, 64, "sha512");
const child = HDKey.fromMasterSeed(seed).derive("m/0'/0/1");
const bitcoin = new Bitcoin();
const pubkey = bitcoin.getKeyPublic(Buffer.from(child.privateKey).toString("hex"), {
  compressed: true,
});
assert.equal(pubkey, "024ad3b398bc9a95b4b8d44310e15a5355402dba3c784e60bf3b14821ca1622adb");
assert.equal(bitcoin.getAddress(pubkey, "segwit"), "bc1q32e3dxcd0n2tlzdmchraf2057d0ax4xdwrk3jq");

The record stores the derived private key as hex(...), which ordinary verify() can check. It doesn't pass an Electrum phrase into the library's BIP39 seed(...) type. This is a public solved puzzle, not a wallet to reuse.

The 80,000-satoshi prize and claim

The claim transaction spent two 40,000-satoshi outputs on August 17, 2026 at 18:08:09 UTC. It paid 79,638 sats to 17oKQHHRxdQBiRaGKCoVDQJfebhPaZV3r7 and 362 sats in fees. The prize was 80,000 sats, not the smaller payout. Paul confirmed the solve but didn't name the solver.

Bitcoin Vault #2 and its 1 BTC prize

Vault #2 uses bc1qnepv9pcnqvndux9h9mcaxvk6u993rc0lew9fpp. Its funding transaction deposited 1 BTC on August 12, 2026 at 14:19:56 UTC. On September 20 the address still held that BTC, with no spends.

The launch announcement was published on September 11 at 16:42:56 UTC, per the publisher's metadata. That's the second puzzle's start date. Funding came earlier; public hints come later.

When do Vault #2 hints start?

Public hints are scheduled from October 12, 2026. All twelve slots were locked at the September 20 check. Paul warns that clues may need combining rather than mapping neatly to individual words.

Vault #2 has no recorded public key, seed or derivation path. Don't assume it uses Electrum just because the first vault did.

Browse the LuckyLurker puzzle records

luckylurker.all()2 puzzles

1 solved 1 unsolved

  1. vault_1 solved
  2. vault_2 unsolved

every name is a page · the key icon marks a published private key

@agntn/puzzles·MIT license· Public data about public puzzles. Balances come from the chains' explorers through the worker, cached for five minutes. Every key here was public before it landed in a record.