---
title: "Ballet wallets"
description: "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."
canonical_url: "https://puzzles.agntn.dev/collections/ballet"
---
# 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.

<collection-facts collection="ballet">



</collection-facts>

## 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`.

```ts [src/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.

<collection-puzzles collection="ballet">



</collection-puzzles>


## Sitemap

See the full [sitemap](https://puzzles.agntn.dev/sitemap.md) for all pages.
