NFT EMERGENCY RECOVERY GUIDE

If NFTs stop displaying, this guide explains how to restore them.

All files are permanently backed up on Arweave

22,499 files across 19 collections. This backup ensures your NFTs can always be recovered.

Download ARWEAVE_COMPLETE_MAPPING.json

How It Works

NFT images and metadata are hosted on IPFS. If IPFS becomes unavailable, files can be retrieved from Arweave and re-pinned to IPFS. Once re-pinned, NFTs display normally again — no contract modification required.

What You Need

  1. ARWEAVE_COMPLETE_MAPPING.json — Included with this guide
  2. Pinata accountpinata.cloud (free tier available)
  3. Basic technical knowledge — Or assistance from a developer

Recovery Procedure

1

Create a Pinata Account

Go to pinata.cloud and create an account.

Navigate to API Keys → New Key and enable pinFileToIPFS.

Save your API Key and Secret.

2

Locate Files in the Mapping

Open ARWEAVE_COMPLETE_MAPPING.json. Each file has a permanent Arweave URL:

{
  "Collection_Name": {
    "metadata/1.json": {
      "url": "https://arweave.net/abc123..."
    },
    "images/1.png": {
      "url": "https://arweave.net/xyz789..."
    }
  }
}
3

Download from Arweave

Open any Arweave URL in your browser to download the file.

For bulk downloads, use the script provided in the technical appendix.

4

Re-pin to IPFS

Upload downloaded files to Pinata:

The file will receive the same IPFS hash (CID) as the original.

5

Verify Recovery

Once files are pinned, NFTs will display correctly on OpenSea and other platforms.

IPFS uses content-based addressing: identical files produce identical addresses.

After Recovery

NFTs display correctly on all platforms

No smart contract modification required

Original IPFS links remain valid

All collectors benefit from the restoration

Collections Covered

CollectionItems
Low_Effort_Magic_Forest10,000
Low_effort_medieval_stuff250
Low_effort_Homes150
High_effort_junk124
Low_Effort_Rave_Party_101
SEND_NUDES_75
DAIMON51
PIXEL_DANCE_49
VORTEX36
PUNK_HARDER30
Low_Effort_Order29
Buy_punk22
Sol_y_Sombra20
Forest_Exclusives20
Exclusive_Tapestries_12
H_Y_P_E_R_S_P_A_C_E8
Esth_tique_de_la_Terreur3
galuboy wagon3
GOON_CORNER1

Total: 10,984 NFTs — 22,499 files

Technical Appendix: Bulk Recovery Script

// rescue.mjs - Node.js script for bulk recovery
import fs from 'fs';
import https from 'https';

const PINATA_API_KEY = 'your_api_key';
const PINATA_SECRET = 'your_secret_key';
const COLLECTION = 'Collection_Name';

const mapping = JSON.parse(fs.readFileSync('ARWEAVE_COMPLETE_MAPPING.json'));
const files = mapping[COLLECTION];

async function downloadAndPin(filepath, arweaveUrl) {
  // Download from Arweave
  const buffer = await new Promise((resolve, reject) => {
    https.get(arweaveUrl, (res) => {
      const chunks = [];
      res.on('data', chunk => chunks.push(chunk));
      res.on('end', () => resolve(Buffer.concat(chunks)));
      res.on('error', reject);
    });
  });

  // Pin to IPFS via Pinata
  const FormData = (await import('form-data')).default;
  const formData = new FormData();
  formData.append('file', buffer, { filename: filepath.split('/').pop() });

  const res = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
    method: 'POST',
    headers: {
      'pinata_api_key': PINATA_API_KEY,
      'pinata_secret_api_key': PINATA_SECRET,
    },
    body: formData
  });
  return res.json();
}

// Execute recovery
for (const [filepath, data] of Object.entries(files)) {
  console.log(`Recovering: ${filepath}`);
  const result = await downloadAndPin(filepath, data.url);
  console.log(`  Pinned: ${result.IpfsHash}`);
}

Run with: npm install form-data && node rescue.mjs

ARWEAVE_COMPLETE_MAPPING.json

22,499 files permanently stored on Arweave

Download mapping file