Game along with the code for the game can be found here: https://codesandbox.io/s/bitcoin-treasure-map-1-jqkwv
Location of the treasures
{
"features": [
{
"type": "Feature",
Game along with the code for the game can be found here: https://codesandbox.io/s/bitcoin-treasure-map-1-jqkwv
Location of the treasures
{
"features": [
{
"type": "Feature",
import React, { useRef, useEffect } from 'react'; | |
import { createPortal } from 'react-dom'; | |
const Portal: React.FC = ({ children }) => { | |
const el = useRef<HTMLDivElement | null>(null); | |
useEffect(() => { | |
el.current = document.createElement('div'); | |
document.body.appendChild(el.current); |
I hereby claim:
To claim this, I am signing this object:
Hello again.
I was not the first to find the key this time, props to EnigmaZer0 for this one! After seeing that everyone enjoyed understanding how the first clues were solved I thought I'd provide an explanation for The Leporine Key
.
The second clue dropped early afternoon EDT on (easter) Sunday April 21 2019. The clue can be viewed on the satoshis treasure website here and looked like this:
_____ _ _ _ _ _____
/ ___| | | | | (_| ) |_ _|
Today (April 16th 2019 at noon) the first major clues to discover key #1 was set to be released in a few cities. A QR code with the words 'orbital' were found at these locations and looked like this: (https://imgur.com/a/6rNmz7T). If you read the QR code with your phone you will be directed to this url: https://satoshistreasure.xyz/k1
At this URL you are prompted to input a passphrase to decrypt the first shard. An obvious first guess was to try the word 'orbital' from the QR code. Not suprisingly this worked! This reveals a congratulations page and presents the first key shard:
ST-0001-a36e904f9431ff6b18079881a20af2b3403b86b4a6bace5f3a6a47e945b95cce937c415bedaad6c86bb86b59f0b1d137442537a8
.
Now, we were supposed to wait until April 17th to get clues from the other cities for keys #2 and #3 but that wouldn't stop me from digging around with all the new information we had. All that time "playing" notpron (http://notpron.org/notpron/) years ago was going to help me here.
The first thing I noticed was
{ | |
"0": { | |
"keyword": "HOPOPT", | |
"protocol": "IPv6 Hop-by-Hop Option", | |
"reference": "[RFC8200]" | |
}, | |
"1": { | |
"keyword": "ICMP", | |
"protocol": "Internet Control Message", | |
"reference": "[RFC792]" |
Verifying my Blockstack ID is secured with the address 14MRKfWcYQiKSe5JhwxsCwQZzA11M6gy6V https://explorer.blockstack.org/address/14MRKfWcYQiKSe5JhwxsCwQZzA11M6gy6V |
var fs = require('fs'); | |
var Converter = require('csvtojson').Converter; | |
var converter = new Converter({}); | |
var filename = 'FILENAME_WITHOUT_EXTENSION'; | |
converter.transform = function(json) { | |
// transformation for each row | |
}; | |
converter.on('end_parsed', function (jsonArray) { |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<title>Blank HTML 5 Template</title> | |
<style> | |
#progress-bar { | |
width: 0; | |
height: 50px; | |
background-color: black; |
function remDups(arr) { | |
return arr.reduce((memo, num) => { | |
if (memo.numMap[num]) return memo; | |
memo.numMap[num] = true; | |
memo.noDupArr.push(num); | |
return memo; | |
}, { noDupArr: [], numMap: {} }).noDupArr; | |
} |