FireChain AI
Command Operator
Polygon Amoy Live RPCChain ID: 80002 • EVM Public Consensus

Cryptographic Audit Trail & On-Chain Consensus

Every satellite anomaly, field report, and suppression intervention is cryptographically chained via SHA-256 and anchored to Polygon Amoy.

Polygonscan Explorer
Total Blocks Stored: 5
Block #0GENESISFIRECHAIN-ROOT
Timestamp: 2026-10-18T00:00:00.000Z
Previous Block Hash:

0x0000000000000000000000000000000000000000000000000000000000000000

Current Block Hash:

0x1a8f9c04d1efb010c73229b46e379435b719468205fbc56e72c845ad35c029fa

Polygon Amoy Consensus:Block #50732320(0x9b1b0a4555598b...)
Verify on Polygonscan
Cryptographically Stamped Payload:Payload Hash: 0x8fa40bc75f1d43...
{
  "network": "Polygon Amoy / FireChain Testnet",
  "contract": "0x3F882199b5E1C1A7E1541c9F7c2D7D1E8F66A9B0",
  "description": "Genesis block for Kalimantan Peatland Fire Audit Registry"
}
Validator Node: 0x7a3Fe527cD1e095C2B41Ac9C7c2D7D1E8F66A9B1 On-Chain Consensus Valid
Block #1HOTSPOT_CLUSTERNASA-VIIRS-KT-20261019
Timestamp: 2026-10-19T06:05:00.000Z
Previous Block Hash:

0x1a8f9c04d1efb010c73229b46e379435b719468205fbc56e72c845ad35c029fa

Current Block Hash:

0x7a3e81f9b3c402d91458e0a359cf93106bd2f491a92e624c9c7f66a2c914e9f1

Polygon Amoy Consensus:Block #50732330(0x8a2f1c04d1efb0...)
Verify on Polygonscan
Cryptographically Stamped Payload:Payload Hash: 0x5d9b6261f9dfa0...
{
  "source": "NASA FIRMS Suomi-NPP VIIRS",
  "cluster_region": "Kalimantan Tengah & Timur",
  "hotspot_count": 2991,
  "peak_frp_mw": 42.8,
  "verified_by": "NASA LANCE Rapid Response"
}
Validator Node: 0x8b2A4C1D9e83F16c3104e7b89A0837D53C2D1612 On-Chain Consensus Valid
Block #2INCIDENT_CREATEDFC-2026-0018
Timestamp: 2026-10-20T08:15:00.000Z
Previous Block Hash:

0x7a3e81f9b3c402d91458e0a359cf93106bd2f491a92e624c9c7f66a2c914e9f1

Current Block Hash:

0x8b2e4c1d7a93f18e0a459cf92106bd2f391a82e614c9c7f66a2c914a4c1de9f2

Polygon Amoy Consensus:Block #50732338(0x7c3e81f9b3c402...)
Verify on Polygonscan
Cryptographically Stamped Payload:Payload Hash: 0x3e4b77f11ac890...
{
  "title": "Kebakaran Lahan Gambut Sebangau",
  "province": "Kalimantan Tengah",
  "coordinates": [
    -2.35,
    113.82
  ],
  "severity": "Tinggi",
  "frp": 38.5,
  "reporter": "Manggala Agni Daops Palangka Raya"
}
Validator Node: 0x4f97a2e8c1b359d04812a6f8b9e83d8a7c2e3914 On-Chain Consensus Valid
Block #3STATUS_CHANGEFC-2026-0018
Timestamp: 2026-10-20T10:45:00.000Z
Previous Block Hash:

0x8b2e4c1d7a93f18e0a459cf92106bd2f391a82e614c9c7f66a2c914a4c1de9f2

Current Block Hash:

0x4f9a7a2e9d3a1c8f04128a9b6c4e7d1e8f66a9b05c2d3e4f7a8b9c0d1e2f3a4b

Polygon Amoy Consensus:Block #50732342(0x6b3e81f9b3c402...)
Verify on Polygonscan
Cryptographically Stamped Payload:Payload Hash: 0x91dfa843e936b1...
{
  "status": "Terverifikasi",
  "verification_type": "Ground Drone Thermal Camera",
  "burned_area_est_ha": 8.5,
  "water_bombing_requested": false,
  "ground_crew_dispatched": 14
}
Validator Node: 0x1c89d3a17a3Fe527cD1e095C2B41Ac9C7c2D7D1E On-Chain Consensus Valid
Block #4RESPONSE_DISPATCHFC-2026-0018
Timestamp: 2026-10-20T14:30:00.000Z
Previous Block Hash:

0x4f9a7a2e9d3a1c8f04128a9b6c4e7d1e8f66a9b05c2d3e4f7a8b9c0d1e2f3a4b

Current Block Hash:

0x1c89d3a1e9f17a3Fe527cD1e095C2B41Ac9C7c2D7D1E8F66A9B14F9A7A2E9D3A

Polygon Amoy Consensus:Block #50732348(0x5a2e81f9b3c402...)
Verify on Polygonscan
Cryptographically Stamped Payload:Payload Hash: 0x14a1e94cfb13e4...
{
  "team": "Satgas Karhutla Posko Katingan",
  "water_pumps_active": 6,
  "trenching_distance_meters": 450,
  "containment_achieved_pct": 75,
  "avoided_emissions_tco2e": 680
}
Validator Node: 0x9d3a1c8f04128a9b6c4e7d1e8f66a9b05c2d3e4f On-Chain Consensus Valid

Smart Contract Specification: IncidentRegistry.sol

Target Networks: Polygon Amoy Testnet (Chain ID: 80002) / Base Sepolia (Chain ID: 84532)

Solidity 0.8.24
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract IncidentRegistry {
    struct IncidentRecord {
        bytes32 incidentId;
        bytes32 payloadHash;
        uint256 timestamp;
        uint8 severity; // 0: Low, 1: Moderate, 2: High, 3: Critical
        uint8 status;   // 0: Draft, 1: UnderVerification, 2: Verified, 3: ActiveResponse, 4: Resolved
        address validator;
    }

    mapping(bytes32 => IncidentRecord) public incidents;
    bytes32[] public incidentList;

    event IncidentLogged(bytes32 indexed incidentId, bytes32 payloadHash, uint8 severity);
    event StatusUpdated(bytes32 indexed incidentId, uint8 newStatus, address updater);

    function registerIncident(
        bytes32 _id,
        bytes32 _payloadHash,
        uint8 _severity
    ) external {
        require(incidents[_id].timestamp == 0, "Incident already registered");
        incidents[_id] = IncidentRecord({
            incidentId: _id,
            payloadHash: _payloadHash,
            timestamp: block.timestamp,
            severity: _severity,
            status: 0,
            validator: msg.sender
        });
        incidentList.push(_id);
        emit IncidentLogged(_id, _payloadHash, _severity);
    }
}