{"id":15796,"date":"2026-07-16T09:26:39","date_gmt":"2026-07-16T09:26:39","guid":{"rendered":"https:\/\/thunderpick.gl\/blog\/?p=15796"},"modified":"2026-07-16T09:26:41","modified_gmt":"2026-07-16T09:26:41","slug":"thunder-mines-is-provably-fair","status":"publish","type":"post","link":"https:\/\/thunderpick.gl\/blog\/thunder-mines-is-provably-fair","title":{"rendered":"Thunder Mines is Provably Fair"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\n<h2 class=\"wp-block-heading\"><strong>What is Provably Fair?<\/strong><\/h2>\n\n\n\n<p>Thunder Mines is a Thunderpick Original, a pixel-powered, retro-styled treasure hunt played on a 5\u00d75 grid. Hidden beneath the tiles are mines; your goal is to uncover as many safe diamonds as possible before cashing out. Like all Thunderpick Originals, Thunder Mines uses a cryptographic provably fair system, which means you can independently verify that the outcome of every round was determined before you placed your bet and that neither you nor Thunderpick could manipulate the result.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How It Works<\/strong><\/h2>\n\n\n\n<p>The fairness of every Thunder Mines round is guaranteed by a three-component seed system:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Server Seed<\/strong><\/h3>\n\n\n\n<p>Before the round begins, the server generates a secret server seed and immediately commits to it by showing you its SHA-256 hash. This hash is a cryptographic fingerprint. It proves the server&#8217;s seed was fixed before you played, without revealing the seed itself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Client Seed<\/strong><\/h3>\n\n\n\n<p>By default your client seed is randomly assigned, but you can replace it with any string of your choice at any time before a new round begins. This gives you direct input into the outcome, ensuring that neither the server nor any third party can unilaterally determine the result.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Nonce<\/strong><\/h3>\n\n\n\n<p>Each bet you place increments a nonce (game counter) by one. The combination of server seed + client seed + nonce produces a unique, verifiable outcome for every single round.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Step-by-Step Verification<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Step<\/strong><\/td><td><strong>What happens<\/strong><\/td><\/tr><tr><td><strong>Before your bet<\/strong><\/td><td>The server generates a server seed and shows you its SHA-256 hash as a commitment.<\/td><\/tr><tr><td><strong>During your bet<\/strong><\/td><td>Your client seed and nonce are combined with the server seed to determine tile placement.<\/td><\/tr><tr><td><strong>After the round<\/strong><\/td><td>You can reveal and verify that its SHA-256 hash matches what was shown before the game.<\/td><\/tr><tr><td><strong>Independent check<\/strong><\/td><td>Using the script below, you can reproduce the exact mine positions yourself.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Algorithm<\/strong><\/h2>\n\n\n\n<p>The board layout is generated in two stages:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Stage 1 \u2014 Random Number Generation<\/strong><\/h3>\n\n\n\n<p> The system computes HMAC-SHA256(key: serverSeed, message: &#8220;clientSeed:nonce:round&#8221;) for multiple rounds (\u230825\/8\u2309 = 4 rounds). Each 32-byte hash yields 8 floating-point numbers in [0, 1) by splitting the hash into 4-byte groups and applying positional byte weighting:<\/p>\n\n\n\n<p>value = byte[0]\/256 + byte[1]\/256\u00b2 + byte[2]\/256\u00b3 + byte[3]\/256\u2074&nbsp;&nbsp;<\/p>\n\n\n\n<p>This produces 32 random numbers of which 25 are used. One for each tile on the 5\u00d75 grid.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Stage 2 \u2014 Fisher-Yates Shuffle<\/strong><\/h3>\n\n\n\n<p> The 25-element array (mines first, then crystals) is shuffled using the Fisher-Yates algorithm driven by the 25 random numbers. Starting with mines placed at positions [0 \u2026 mineCount-1] and crystals at [mineCount \u2026 24], the shuffle iterates backwards from index 24 to 0, swapping each tile with a uniformly chosen earlier or equal position. This guarantees a perfectly uniform random permutation,&nbsp; identical to the servers implementation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Verify Your Round<\/strong><\/h2>\n\n\n\n<p>Paste the script below into<a href=\"https:\/\/runjs.app\/play\" target=\"_blank\" rel=\"noopener\"> <strong>RunJS<\/strong><\/a>, fill in your four values from the game history, and run it. The printed 5\u00d75 board must match exactly what you played.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>\/\/ ============================================================\n\/\/  PROVABLY FAIR VERIFICATION\n\/\/  Mines Game \u2014 verify that your game result was not manipulated\n\/\/\n\/\/  HOW IT WORKS:\n\/\/  1. Before the game starts, the server commits to a secret\n\/\/     \"server seed\" (you see its SHA-256 hash up front).\n\/\/  2. You supply a \"client seed\" and a \"nonce\" (bet number).\n\/\/  3. After the game, you can reveal server seed by rotating seed pair\n\/\/  4. Paste this script into https:\/\/runjs.app\/play and fill in\n\/\/     your four values below, then run it.\n\/\/\n\/\/  If the output matches what you played, the game was fair.\n\/\/ ============================================================\n\n\/\/ \u2500\u2500 INPUTS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\/\/ Replace these four values with the ones from your game.\n\nconst serverSeed    = \"33e91b21e223a141b5b5d5bfa2ea0594faa4e49bab1d542e748c149e5e3ae0d0\";\nconst clientSeed    = \"s0qbrrij836wy2mn\";\nconst nonce         = 3619;  \/\/ your bet \/ round number\nconst numberOfMines = 5;     \/\/ how many mines were on the board\n\n\/\/ \u2500\u2500 STEP 1: Generate random numbers from the seeds \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst randomNumbers = await generateRandomNumbers(serverSeed, clientSeed, nonce);\n\n\/\/ \u2500\u2500 STEP 2: Shuffle tiles using the random numbers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst board = shuffleTiles(numberOfMines, randomNumbers);\n\n\/\/ \u2500\u2500 STEP 3: Print the 5\u00d75 board \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconsole.log(\"=== Board layout (5\u00d75) ===\\n\");\n\nfor (let row = 0; row &lt; 5; row++) {\n    const rowTiles = board.slice(row * 5, row * 5 + 5);\n    console.log(rowTiles.map(tile => tile.padEnd(10)).join(\"\"));\n}\n\n\n\/\/ \u2500\u2500 ALGORITHM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n\/**\n * Returns an array of 25 random numbers in &#91;0, 1) derived from\n * HMAC-SHA256(key: serverSeed, message: \"clientSeed:nonce:round\").\n *\n * One HMAC-SHA256 hash produces 32 bytes \u2192 8 floats (4 bytes each).\n * For 25 tiles we need \u230825\/8\u2309 = 4 rounds of hashing.\n *\/\nasync function generateRandomNumbers(serverSeed, clientSeed, nonce) {\n    const normalizedSeed = serverSeed.toUpperCase().replaceAll(\" \", \"\");\n    const keyBytes       = new TextEncoder().encode(normalizedSeed);\n    const messageBase    = `${clientSeed}:${nonce}:`;\n\n    const cryptoKey = await crypto.subtle.importKey(\n        \"raw\",\n        keyBytes,\n        { name: \"HMAC\", hash: \"SHA-256\" },\n        false,\n        &#91;\"sign\"]\n    );\n\n    const randomNumbers  = new Array(25);\n    const tilesPerHash   = 8;  \/\/ 32 bytes \/ 4 bytes per float\n    const hashRoundsNeeded = Math.ceil(randomNumbers.length \/ tilesPerHash);\n\n    let tileIndex = 0;\n\n    for (let round = 0; round &lt; hashRoundsNeeded; round++) {\n        \/\/ Message changes each round so each hash is unique.\n        const message    = messageBase + round;\n        const messageBytes = new TextEncoder().encode(message);\n        const hashBuffer   = await crypto.subtle.sign(\"HMAC\", cryptoKey, messageBytes);\n        const hashBytes    = new Uint8Array(hashBuffer);\n\n        \/\/ Split the 32-byte hash into groups of 4 bytes.\n        \/\/ Convert each group to a float in &#91;0, 1) using positional weighting:\n        \/\/   value = byte0\/256 + byte1\/256\u00b2 + byte2\/256\u00b3 + byte3\/256\u2074\n        \/\/ This gives ~32 bits of precision, identical to the server's calculation.\n        const bytesPerFloat = 4;\n        for (let byteOffset = 0; byteOffset &lt; hashBytes.length; byteOffset += bytesPerFloat) {\n            const value =\n                hashBytes&#91;byteOffset + 0] \/ 256 +\n                hashBytes&#91;byteOffset + 1] \/ (256 ** 2) +\n                hashBytes&#91;byteOffset + 2] \/ (256 ** 3) +\n                hashBytes&#91;byteOffset + 3] \/ (256 ** 4);\n\n            randomNumbers&#91;tileIndex] = value;\n            tileIndex++;\n\n            if (tileIndex === randomNumbers.length)\n                break; \/\/ all tiles filled \u2014 stop early\n        }\n    }\n\n    return randomNumbers;\n}\n\n\/**\n * Places mineCount mines on a 25-tile board using a\n * Fisher-Yates shuffle driven by randomNumbers.\n *\n * Fisher-Yates works backwards: for each position i (from 24 down to 0),\n * pick a random position j in &#91;0, i] and swap tiles&#91;i] with tiles&#91;j].\n * This produces a perfectly uniform random permutation.\n *\/\nfunction shuffleTiles(mineCount, randomNumbers) {\n    \/\/ Start with an ordered list: mines first, then safe tiles.\n    const tiles = &#91;\n        ...Array(mineCount).fill(\"BOMB\"),\n        ...Array(25 - mineCount).fill(\"CRYSTAL\"),\n    ];\n\n    \/\/ Fisher-Yates shuffle \u2014 identical to the server's implementation.\n    for (let i = 24; i >= 0; i--) {\n        const j = Math.floor(randomNumbers&#91;i] * (i + 1));\n        &#91;tiles&#91;i], tiles&#91;j]] = &#91;tiles&#91;j], tiles&#91;i]];\n    }\n\n    return tiles;\n}\n<\/code><\/pre>\n<\/blockquote>\n\n\n\n<p>\u25b6<a href=\"https:\/\/runjs.app\/play\" target=\"_blank\" rel=\"noopener\"> <strong>Open in RunJS<\/strong><\/a> \u2014 paste the code, replace the four input values with your own, and run.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Where to Find Your Values<\/strong><\/h2>\n\n\n\n<p>All these parameters can be checked for each Wager in the Provably Fair expandable menu, which can be accessed in the following way:<\/p>\n\n\n\n<p>Open \u201cProfile menu\u201d -&gt; \u201cMy bets\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-1024x576.png\" alt=\"\" class=\"wp-image-15800\" srcset=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-1024x576.png 1024w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-300x169.png 300w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-768x432.png 768w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-1536x864.png 1536w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Switch to Casino tab and choose Mines wager<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"579\" src=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-28-1024x579.png\" alt=\"\" class=\"wp-image-15797\" srcset=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-28-1024x579.png 1024w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-28-300x170.png 300w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-28-768x434.png 768w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-28-1536x869.png 1536w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-28.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Expand Provably Fair menu:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"443\" height=\"439\" src=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-29.png\" alt=\"\" class=\"wp-image-15798\" srcset=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-29.png 443w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-29-300x297.png 300w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-29-150x150.png 150w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/><\/figure>\n\n\n\n<p>In the menu User is able to find Hash prepared from Server Seed, Client Seed, and Nonce.<\/p>\n\n\n\n<p>To rotate seeds you can use the \u201cRotate your seed pair\u201d feature:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-1024x576.png\" alt=\"\" class=\"wp-image-15799\" srcset=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-1024x576.png 1024w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-300x169.png 300w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-768x432.png 768w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30-1536x864.png 1536w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-30.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Here, not only the currently used pair of seeds are displayed, but also the User is already informed about the next Server Seed (of course in Hashed form) and can Edit client seed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"639\" height=\"1024\" src=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-31.png\" alt=\"\" class=\"wp-image-15801\" srcset=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-31.png 639w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-31-187x300.png 187w\" sizes=\"(max-width: 639px) 100vw, 639px\" \/><\/figure>\n\n\n\n<p>After given pair of Seeds is rotated, the not-hashed Server Seed from previous pair is revealed to Player:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"796\" src=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-32.png\" alt=\"\" class=\"wp-image-15802\" srcset=\"https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-32.png 626w, https:\/\/thunderpick.gl\/blog\/wp-content\/uploads\/2026\/07\/image-32-236x300.png 236w\" sizes=\"(max-width: 626px) 100vw, 626px\" \/><\/figure>\n\n\n\n<p>In the result, players have access to all parameters, which allows them to check if a given Wager was actually randomly generated.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>Thunder Mines uses the same provably fair infrastructure as all Thunderpick Originals. The algorithm is open, auditable, and reproducible by anyone with a browser.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is Provably Fair? Thunder Mines is a Thunderpick Original, a pixel-powered, retro-styled treasure hunt played on a 5\u00d75 grid. Hidden beneath the tiles are mines; your goal is to uncover as many safe diamonds as possible before cashing out. Like all Thunderpick Originals, Thunder Mines uses a cryptographic provably fair system, which means you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15804,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[92,67,53,75,54],"tags":[],"class_list":["post-15796","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-casino","category-crypto","category-news","category-promotions","category-platform"],"acf":[],"_links":{"self":[{"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/posts\/15796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/comments?post=15796"}],"version-history":[{"count":3,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/posts\/15796\/revisions"}],"predecessor-version":[{"id":15807,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/posts\/15796\/revisions\/15807"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/media\/15804"}],"wp:attachment":[{"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/media?parent=15796"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/categories?post=15796"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thunderpick.gl\/blog\/wp-json\/wp\/v2\/tags?post=15796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}