to
πŸ“œ Data Loading Options

Load older pages (Page 1 = oldest data, higher pages = newer)

to

βš™οΈ Custom Endpoints (Advanced)

Leave blank to use defaults. Custom endpoints are saved locally. Must be HTTPS if using IPFS.

πŸ“’ Updates

Loading updates...
⏳ Loading Ergo WASM library...
0

Choose Wallet Method

Mobile: Use Ergo Mobile or Terminus wallet. Desktop: Use Nautilus browser extension.

1

Your Ergo Wallet

Used to receive the SIGHT token. Not stored anywhere.

2

Capture Location

Enter coordinates manually or use the button above.

2b

Report Tag (Required)

Required: One word, letters only, minimum 2 characters. Select from recent tags or enter your own.

2c

Note (Optional)

Optional: Add a short note (max 50 characters) that will appear when hovering over this report on the map.

3

Anti-Spam Verification

4

Create Transaction

Due to blockchain confirmation times, it may take 2-4 minutes for your report to appear on the map.

What is SIGHT?

SIGHT is a decentralized, censorship-resistant tool for anonymously reporting sightings across the planet.

Reports are stored permanently on the Ergo blockchainβ€”no central server can delete or censor them. The web interface is hosted on IPFS, making it unstoppable.

  • Anonymous: No accounts, no tracking, no personal data collected
  • Permanent: Reports are immutable blockchain records
  • Transparent: Anyone can verify reports on the blockchain
  • Decentralized: No single point of failure or control
  • Open: Anyone can host a front end and read from the chain, or this page itself!

Step 1: Get a Wallet

You need an Ergo wallet to submit reports. The wallet signs transactions locallyβ€”your private keys never leave your device.

Mobile

Use with the "Mobile (ErgoPay)" option in the Report tab:

Android (Play Store) iOS (App Store)

Desktop

Use with the "Desktop (Nautilus)" option in the Report tab:

Nautilus (Chrome Extension)

Nautilus is a browser extension wallet for Chrome/Brave. After installing, create a wallet and fund it with ERG.

Alternative: You can also run the Ergo mobile wallet on desktop using the Java version (requires Java installed). This works with the Mobile (ErgoPay) option.

Step 2: Get ERG

Each report costs a tiny amount of ERG (the Ergo cryptocurrency)β€”about $0.01 worth. Getting $1-5 of ERG will last for hundreds of reports.

How to buy ERG:

  1. Open your wallet and copy your receive address
  2. Go to Banxa (link below) and purchase ERG
  3. Paste your wallet address as the destination
  4. Complete the purchase (card/bank supported)
Buy ERG on Banxa

More places to get ERG for the advanced user: ergoplatform.org/get-erg

Reminder: No matter where you get ERG, you will need to transfer it to your Ergo mobile wallet address to use this app!

Learn more at ergoplatform.org β†’

Privacy & Security

  • GPS Precision: Location is captured at neighborhood level, not exact address
  • No IP Logging: This page runs entirely in your browser
  • Pseudonymous: Wallet addresses aren't linked to your identity
  • Your Device: Private keys and signing happen locally

Important: While reports are anonymous, always prioritize your personal safety. Only report when it's safe to do so.

Technical Details

Reports are stored as tokens minted on the Ergo blockchain with the following structure:

  • Token Name: SIGHT-{timestamp}
  • Description: JSON with GPS coordinates, timestamp, tag, and proof-of-work nonce

How the nonce works: Before submitting, your device computes a cryptographic proof-of-work using your location, timestamp, and wallet address. This nonce is stored in the token. When viewing reports, every client re-verifies the proofβ€”tokens without valid PoW are rejected. This means even if someone bypasses this front end to mint tokens directly, their reports will be filtered out by all viewers.

View on Ergo Explorer β†’

Host Your Own SIGHT Frontend

SIGHT is fully open and decentralized. Anyone can host their own frontend that reads from and writes to the same shared blockchain data.

This page is a single HTML fileβ€”just download it and host it anywhere (IPFS, your own server, GitHub Pages, etc.).

Token Format

Reports are Ergo tokens with the following structure:

Token Name: SIGHT-{timestamp}

Token Description (JSON):
{
  "lat": 40.7128,      // Latitude (truncated for privacy)
  "lon": -74.0060,     // Longitude (truncated for privacy)
  "ts": 1704067200000, // Timestamp (ms since epoch)
  "tag": "example",    // User-defined tag
  "addr": "9f...",     // First 8 chars of wallet address
  "nonce": "abc123"    // Proof-of-work nonce
}

Proof-of-Work Verification

To prevent spam, each report includes a PoW nonce. Verify it like this:

// 1. Reconstruct the challenge
const challenge = JSON.stringify({
  lat: desc.lat,
  lon: desc.lon,
  ts: desc.ts,
  addr: desc.addr  // First 8 chars of wallet
});

// 2. Hash challenge + nonce
const hash = await sha256(challenge + desc.nonce);

// 3. Check difficulty (4 leading zeros)
const isValid = hash.startsWith('0000');

Tokens failing PoW verification should be filtered out when reading reports.

Reading Reports

Query the Ergo Explorer API for tokens with the SIGHT- prefix:

GET https://api.ergoplatform.com/api/v1/tokens/search?query=SIGHT-&limit=100

Fallback endpoints:

  • https://api.ergoplatform.com/api/v1
  • https://explorer-p2p.ergoplatform.com/api/v1

Minting Reports

To mint a report token, build a transaction that:

  1. Uses at least one input box from the user's wallet
  2. Creates an output box with a new token (amount: 1)
  3. Sets token name to SIGHT-{timestamp}
  4. Sets token description to the JSON structure above
  5. Includes valid PoW nonce in the description

For mobile wallets, use the ErgoPay protocol:

ergopay:{base64_encoded_reduced_transaction}

The reduced transaction should be Base64-encoded (not Base64URL). Mobile wallets will prompt the user to sign.

Dependencies

  • ergo-lib-wasm: For building transactions (embedded in this page as WASM)
  • Leaflet.js: For map display (loaded from CDN)
  • OpenStreetMap: For map tiles

The ergo-lib-wasm bindings and WASM binary are embedded directly in this HTML file for maximum portability.