---
title: "Bitimage"
description: "Corey Phillips turned photographs into seeds in 2019. The kitten fell in a week. The second image needs a passphrase nobody has posted."
canonical_url: "https://puzzles.agntn.dev/collections/bitimage"
---
# Bitimage

> Corey Phillips turned photographs into seeds in 2019. The kitten fell in a week. The second image needs a passphrase nobody has posted.

<collection-facts collection="bitimage">



</collection-facts>

## The puzzle

Corey Phillips wrote a three part series on turning a photo into a private key. Hash the image bytes, use the hash as BIP39 entropy, derive along `m/84'/0'/0'/0/0`. Then he funded two addresses from two images and posted them. The first image was Andreas Antonopoulos's kitten tweet. Solved in six days. The second adds a BIP39 passphrase on top of the image hash, and it's still open.

## What the records carry

This is the collection that exercises the entropy part of the key builder. The kitten record has a derivation path, no phrase, and an `entropy` block with the hash and where it came from:

```ts [src/collections/bitimage/kitten.ts]
export const bitimagePuzzleKitten = puzzle({
  id: "bitimage/kitten",
  chain: "bitcoin",
  address: "bc1q57euh23y3qs2f9d5mtwpax5lqecfvrdkqce82a",
  sourceUrl: "https://corey-lyle-phillips.medium.com/…",
  startedAt: "2019-07-03 02:48:04",
  status: Status.Solved,
  pubkey: compressed("021209b131dfbd1efcfe15b1d1e92002653f5fc98e9ff6cb73a0d70153dbe58463"),
  key: derivation("m/84'/0'/0'/0/0").entropy(
    "1808d35318ac7cb98b69ff9779b699d6a631f15e0b353ac89b7c4020774832ed",
    source(
      "https://twitter.com/aantonop/status/603701870482300928",
      "Antonopoulos kitten tweet (May 2015)",
    ),
  ),
  prize: 0.00095133,
  solvedAt: "2019-07-09 21:26:12",
  assets: assets({
    puzzle: "kitten/puzzle.jpg",
    sourceUrl: "https://twitter.com/aantonop/status/603701870482300928",
  }),
});
```

A path and an entropy hash aren't a secret in the library's sense. `secretOf` wants a phrase, so `hasPrivateKey()` is `false` here and `verify` answers `unavailable`. The hash is the puzzle's statement of what the seed was built from, kept for whoever wants to reproduce the derivation. The second record marks its passphrase as `Required` instead of inventing one.

## Status

One solved, one open. The open one is `bitimage/kitten-passphrase`, 0.01 BTC, and the image is in `assets/bitimage/`.

## Every puzzle

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

<collection-puzzles collection="bitimage">



</collection-puzzles>


## Sitemap

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