Collections

Ballet wallets

Three Ballet cards with BIP38 keys printed on them. One decrypted for 0.0011 BTC. Two hold a bitcoin each. One waits on a passphrase and one on its encrypted key.
IDballet03 / 513 puzzles · 2020-07-24
Collection

Ballet wallets

bitcoin

Three BIP38 encrypted keys printed on physical wallets.

Author
Bobby Lee
Prize recorded
2.00117358 BTC
Still unsolved
2 · 2.00007358 BTC
closed 1 / 3

Census

solved
133%
unsolved
267%
public keys
133%
private keys
267%

Access

LoadgetCollection("ballet")
Showballet/AA007448 in the playground
Listall 3 in the playground

The puzzle

Ballet sells physical wallets. A card with an address and a BIP38 encrypted private key printed on it, the passphrase under a scratch panel. In July 2020 Bobby Lee posted three of them as a challenge, encrypted key visible, panel intact. One had a small balance and its passphrase was found within a week. The other two hold a bitcoin each and are open for different reasons, below.

What the records carry

A Ballet record starts from encryptedWif(payload, { passphrase }). When the passphrase is known, the record also carries the decrypted WIF and the hex, and the data gate decrypts the BIP38 payload with native scrypt to confirm the two agree. When it isn't, the record has the payload alone. hasPrivateKey() is still true, because an encrypted key is a representation of the key, and verify answers unavailable with WIF is encrypted.

tssrc/collections/ballet/AA007448.ts
export const balletPuzzleAA007448 = puzzle({
  id: "ballet/AA007448",
  chain: "bitcoin",
  address: "1LL6Xy92LwGDRfQP9fBU7f1477cEKctr7c",
  sourceUrl: "https://x.com/bobbyclee/status/1289004702122643456",
  startedAt: "2020-07-24 05:46:12",
  status: Status.Solved,
  pubkey: compressed("0351a7b8675ac06922080803608908267ec7f5bf93ecdd78969083647ac8a67d0d"),
  key: hex("a5b9247400b7e31e54481f14828ced3a538af280e9eeb1229196c3cb5e7ecdde")
    .wif("L2mrYyo5a6rpyQdC88UitNeH5n1rAqPcq8Qv5gwtQE8KTvW3ZTeH")
    .encrypted("6PnWfKaBfDW6mFFhhFsbNRHnVgojUhdf2b5NXP3FfwXiQ69MxEzVK2J4cH", {
      passphrase: "335Y-K745-C8WT-4D2W-80WP",
    }),
  prize: 0.0011,
  solvedAt: "2020-07-31 01:52:18",
  assets: assets({
    puzzle: "AA007448/puzzle.jpg",
    sourceUrl: "https://x.com/bobbyclee/status/1289004702122643456",
  }),
});

Each record ships the photo of its card under assets/ballet/.

Status

ballet/AA009926 has its encrypted key on the record and no passphrase. ballet/AA012381 is the other way round: the passphrase is known, the encrypted key never made it onto the record. Ballet's XXXX-XXXX-XXXX-XXXX-XXXX passphrases aren't in any wordlist, so the bitcoins are still there.

Every puzzle

One page each: the record, the transactions and the live balance.

Listballet.all()3 puzzles · 1 solved · 2 unsolved
  1. AA007448 solved0.0011 BTC1LL6Xy92LwGDRf…cEKctr7c
  2. AA009926 unsolved1.00003481 BTC1JxWyNrkgYvgsH…RftRGP5m
  3. AA012381 unsolved1.00003877 BTC1QGtbKxx6FKDD6…Z7mDHqC4
every name is a page · the key marks a known private keylocal dataset / no network