Skip to content

Instantly share code, notes, and snippets.

@vicariousdrama
Last active August 3, 2023 13:30
Show Gist options
  • Save vicariousdrama/79c886dd2827351cf438c923428f004b to your computer and use it in GitHub Desktop.
Save vicariousdrama/79c886dd2827351cf438c923428f004b to your computer and use it in GitHub Desktop.
borders

A way to produce a deterministic brain wallet for temporary use while crossing borders without physical paper, devices, or need to memorize 12 or 24 seed words.

Find a URL that will be widely available for a time, will remain consistent, and is easy enough to remember

August 2023 -- Twitter is owned by Elon Musk and he's rebranding it to X. As of early August 2023, the URI above still references the preferred favicon file, but this is likely going to change. This demonstrates why this kind of wallet should be fairly short lived. Don't choose a resource that is going through turmoil itself. You may want to consider choosing an image available on the Internet Wayback machine based on URL and date. For example: https://web.archive.org/web/20230601000430im_/https://abs.twimg.com/favicons/twitter.2.ico


Then you can use this set of commands on a linux system

# Set the path of the resource
COMMON_URL="https://gist.github.com/favicon.ico"
# Set the password
SECRET_PWD="brainstorm"

# Now run this to consistently produce the same set of seed words using
# the above resource and the password as input
cd /tmp
wget https://raw.githubusercontent.com/Coldcard/firmware/master/docs/rolls.py
echo `wget -qO- ${COMMON_URL} | xxd -p | tr -d '\n'` `echo ${SECRET_PWD}` | /usr/bin/env python3 rolls.py 

Using the above, the example output is shown below. You may want to test to verify you get the same results.

d3a5f8ade8d496ff4351d3d97b4f2c632c3f29285575c8f0a6c321a2f6f234b7

   1: squirrel
   2: cool
   3: clock
   4: spider
   5: enact
   6: leisure
   7: ask
   8: denial
   9: sunny
  10: surprise
  11: slam
  12: shock
  13: sentence
  14: nest
  15: pattern
  16: push
  17: similar
  18: lunch
  19: radio
  20: drive
  21: control
  22: jungle
  23: spot
  24: top

Obviously, you should pick your own COMMON_URL and SECRET_PWD value when using this


  1. The resulting seed words should be used in the wallet of your choice to determine a receive address.
  2. Sweep funds to address in the wallet
  3. Flee dangerous area
  4. Once safe, repeat above commands to recall the seed words to your wallet
  5. Sweep as necessary to another wallet with new device, multisig, backup etc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment