{
  "schemaVersion": 1,
  "protocol": "Burnable",
  "release": "arc-2026-09-17",
  "documentationUrl": "https://burnable.fun/docs",
  "chain": {
    "name": "Arc",
    "chainId": 5042,
    "rpcUrl": "https://rpc.mainnet.arc.io",
    "explorerUrl": "https://explorer.arc.io",
    "nativeCurrency": {
      "symbol": "USDC",
      "decimals": 18
    },
    "reserveAsset": {
      "symbol": "USDC",
      "address": "0x3600000000000000000000000000000000000000",
      "decimals": 6
    },
    "nativeAndReserveShareBalance": true
  },
  "deploymentBlock": "21217916",
  "economics": {
    "tokenDecimals": 18,
    "initialSupply": "1000000000000000000000000000",
    "curveAllocation": "750000000000000000000000000",
    "liquidityAllocation": "250000000000000000000000000",
    "targetReserveUnits": "10000000000",
    "baseFeeBps": 200,
    "burnBudgetBps": 100,
    "creatorBaseBps": 70,
    "platformBps": 30,
    "maxCreatorExtraBps": 800,
    "extraFeeImmutable": true,
    "creatorGetsAllExtra": true,
    "burnedAsset": "launched-token",
    "revenueAsset": "USDC",
    "burnScope": "Burnable bonding curve and canonical hook pool only",
    "graduation": "atomic-in-completing-buy",
    "liquidityLock": "permanent"
  },
  "phases": {
    "unknown": 0,
    "curve": 1,
    "ready": 2,
    "pool": 3
  },
  "contracts": {
    "vault": {
      "name": "BurnableFeeVault",
      "address": "0x3dc7848195524E57532D0Eb292BaC84919cd0c04",
      "role": "protocol-contract",
      "runtimeHash": "0x3d5eea3aadb8ebbfc935d92f042202d097ec59470d86b3e76c775f1692e95e61",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0x3dc7848195524E57532D0Eb292BaC84919cd0c04?tab=contract",
        "observedAt": "2026-09-16T22:12:35.907Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "originalCreator",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "marketReserve",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "extraFeeBps",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint16",
              "internalType": "uint16"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "creatorClaimable",
          "inputs": [
            {
              "name": "creator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "creatorEarned",
          "inputs": [
            {
              "name": "creator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "platformClaimable",
          "inputs": [
            {
              "name": "asset",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "platformEarned",
          "inputs": [
            {
              "name": "asset",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "FeeAccrued",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "creator",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "gross",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "creatorFee",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "platformFee",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "CreatorPaid",
          "inputs": [
            {
              "name": "creator",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "recipient",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "CreatorPayoutFailed",
          "inputs": [
            {
              "name": "creator",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "remaining",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PlatformPaid",
          "inputs": [
            {
              "name": "asset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "treasury",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PlatformPayoutFailed",
          "inputs": [
            {
              "name": "asset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "remaining",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0x3dc7848195524E57532D0Eb292BaC84919cd0c04#code",
        "verifiedAt": "2026-09-16T22:38:29.960Z"
      }
    },
    "launchpad": {
      "name": "BurnableLaunchpad",
      "address": "0xa877292d1e0e033b96Eb64c4372B61Ca60Fc869c",
      "role": "protocol-contract",
      "runtimeHash": "0x83437baaa384b76791e8a9606ea361f45d8a071e3308b427bdefe4b0099244d0",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0xa877292d1e0e033b96Eb64c4372B61Ca60Fc869c?tab=contract",
        "observedAt": "2026-09-16T22:11:37.027Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "TOTAL_SUPPLY",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "CURVE_SUPPLY",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "LP_SUPPLY",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "BURN_BPS",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "FEE_BPS",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "PLATFORM_BPS",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "maxExtraFeeBps",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint16",
              "internalType": "uint16"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "launchCount",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "launchAt",
          "inputs": [
            {
              "name": "index",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "getMarket",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct BurnableLaunchpad.Market",
              "components": [
                {
                  "name": "creator",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "reserveAsset",
                  "type": "address",
                  "internalType": "address"
                },
                {
                  "name": "virtualBase",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "reserve",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "curveRemoved",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "curveBurned",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "phase",
                  "type": "uint8",
                  "internalType": "enum BurnableLaunchpad.Phase"
                },
                {
                  "name": "poolId",
                  "type": "bytes32",
                  "internalType": "bytes32"
                },
                {
                  "name": "extraFeeBps",
                  "type": "uint16",
                  "internalType": "uint16"
                },
                {
                  "name": "metadataURI",
                  "type": "string",
                  "internalType": "string"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "creatorOf",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "reserveOf",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "quoteBuy",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "grossIn",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "accepted",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "output",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "fee",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "refund",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "burned",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "quoteSell",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "tokenIn",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "output",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "fee",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "burned",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "graduationDustBurned",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "launchTargets",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "virtualBase",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "updatedAt",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "validUntil",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "policyId",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "LaunchCreated",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "creator",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "reserveAsset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "extraFeeBps",
              "type": "uint16",
              "indexed": false,
              "internalType": "uint16"
            },
            {
              "name": "metadataURI",
              "type": "string",
              "indexed": false,
              "internalType": "string"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "LaunchTargetSnapshot",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "virtualBase",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "target",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "updatedAt",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "validUntil",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "policyId",
              "type": "bytes32",
              "indexed": false,
              "internalType": "bytes32"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Trade",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "trader",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "isBuy",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            },
            {
              "name": "input",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "output",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "fee",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "refund",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "burnBudget",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "tokensBurned",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "TokensBurned",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "reserveBudget",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "tokenAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "isBuy",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "GraduationReady",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "Graduated",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "reserveAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "liquidityTokens",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0xa877292d1e0e033b96Eb64c4372B61Ca60Fc869c#code",
        "verifiedAt": "2026-09-16T22:38:46.365Z"
      }
    },
    "hookDeployer": {
      "name": "BurnableHookDeployer",
      "address": "0x1D5733780247b4d0beB34bC9b1357F32886B496e",
      "role": "protocol-contract",
      "runtimeHash": "0x0f4f2c4cfe018ac7294dc38168bc3a0db2ac975240cec17ce23fc003ba9bfdf6",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0x1D5733780247b4d0beB34bC9b1357F32886B496e?tab=contract",
        "observedAt": "2026-09-16T22:15:22.224Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "hook",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract BurnableV4"
            }
          ],
          "stateMutability": "view"
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0x1D5733780247b4d0beB34bC9b1357F32886B496e#code",
        "verifiedAt": "2026-09-16T22:39:07.715Z"
      }
    },
    "hook": {
      "name": "BurnableV4",
      "address": "0x5a1227806a543C50A087f93a265004FA01a560CC",
      "role": "protocol-contract",
      "runtimeHash": "0x16a98682e74e2b0a755dd8c56583337e1823e6ae4bd9e61c4e4a0f95a5b39a9c",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0x5a1227806a543C50A087f93a265004FA01a560CC?tab=contract",
        "observedAt": "2026-09-16T22:14:06.507Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "poolIdOf",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolKeyFor",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "key",
              "type": "tuple",
              "internalType": "struct PoolKey",
              "components": [
                {
                  "name": "currency0",
                  "type": "address",
                  "internalType": "Currency"
                },
                {
                  "name": "currency1",
                  "type": "address",
                  "internalType": "Currency"
                },
                {
                  "name": "fee",
                  "type": "uint24",
                  "internalType": "uint24"
                },
                {
                  "name": "tickSpacing",
                  "type": "int24",
                  "internalType": "int24"
                },
                {
                  "name": "hooks",
                  "type": "address",
                  "internalType": "contract IHooks"
                }
              ]
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "pools",
          "inputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "outputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "creator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "exists",
              "type": "bool",
              "internalType": "bool"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lockedLiquidity",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint128",
              "internalType": "uint128"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lockedReserveDust",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "lockedTokenDust",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "openingSqrtPriceX96",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint160",
              "internalType": "uint160"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "totalBurned",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cumulativeFees",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "cumulativeGross",
          "inputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "LiquidityLocked",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "poolId",
              "type": "bytes32",
              "indexed": true,
              "internalType": "bytes32"
            },
            {
              "name": "liquidity",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            },
            {
              "name": "reserveUsed",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "tokensUsed",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "sqrtPriceX96",
              "type": "uint160",
              "indexed": false,
              "internalType": "uint160"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "PoolFeeAccrued",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "asset",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "amount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "isBuy",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            }
          ],
          "anonymous": false
        },
        {
          "type": "event",
          "name": "TokensBurned",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "reserveSpent",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "tokenAmount",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "contract-not-indexed",
        "verified": false,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0x5a1227806a543C50A087f93a265004FA01a560CC#code"
      }
    },
    "router": {
      "name": "BurnableV4Router",
      "address": "0x85E1C82139af3f92c646d97f010103e86aC090fb",
      "role": "protocol-contract",
      "runtimeHash": "0x15e04885c9d527e7e9a604ae6ac124b742b24d7f6d21b55ab49d5e160f285b70",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0x85E1C82139af3f92c646d97f010103e86aC090fb?tab=contract",
        "observedAt": "2026-09-16T22:16:57.334Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "graduation",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract BurnableV4"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPoolManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "PoolTrade",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "trader",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "isBuy",
              "type": "bool",
              "indexed": false,
              "internalType": "bool"
            },
            {
              "name": "input",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            },
            {
              "name": "output",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0x85E1C82139af3f92c646d97f010103e86aC090fb#code",
        "verifiedAt": "2026-09-17T07:31:56.787Z"
      }
    },
    "quoter": {
      "name": "BurnableV4Quoter",
      "address": "0x939702a9E341B4E1263B885A8761a5f019BA59CB",
      "role": "protocol-contract",
      "runtimeHash": "0xd8456ad74dbe065643e2a676de9ca39dc968a453a339c092a6efaf0662d125f9",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0x939702a9E341B4E1263B885A8761a5f019BA59CB?tab=contract",
        "observedAt": "2026-09-16T22:18:17.724Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "graduation",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract BurnableV4"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "poolManager",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "contract IPoolManager"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "quoteExactInput",
          "inputs": [
            {
              "name": "token",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "isBuy",
              "type": "bool",
              "internalType": "bool"
            },
            {
              "name": "amountIn",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "outputs": [
            {
              "name": "output",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "fee",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "burned",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "nonpayable"
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0x939702a9E341B4E1263B885A8761a5f019BA59CB#code",
        "verifiedAt": "2026-09-17T07:32:36.078Z"
      }
    },
    "pricing": {
      "name": "BurnableArcLaunchPricing",
      "address": "0xf4D48742fd3cE18396fF06d41546A2898143d56a",
      "role": "protocol-contract",
      "runtimeHash": "0x27406ab4476900b651396df84a2c6c1b7c54c84e2934c940a89f6f941f67cd9e",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0xf4D48742fd3cE18396fF06d41546A2898143d56a?tab=contract",
        "observedAt": "2026-09-16T22:19:22.493Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "deploymentChainId",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "primaryAsset",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "pure"
        },
        {
          "type": "function",
          "name": "USDC",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "policyId",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "bytes32",
              "internalType": "bytes32"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "targetUsdcUnits",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "QUOTE_TTL",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "quoteDirect",
          "inputs": [
            {
              "name": "asset",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "tuple",
              "internalType": "struct IBurnableLaunchPricing.Target",
              "components": [
                {
                  "name": "virtualBase",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "updatedAt",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "validUntil",
                  "type": "uint256",
                  "internalType": "uint256"
                },
                {
                  "name": "policyId",
                  "type": "bytes32",
                  "internalType": "bytes32"
                }
              ]
            }
          ],
          "stateMutability": "view"
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0xf4D48742fd3cE18396fF06d41546A2898143d56a#code",
        "verifiedAt": "2026-09-17T07:32:59.873Z"
      }
    },
    "token": {
      "name": "BurnableToken",
      "address": "0x6367d4a17Dc40f57569f9cc6CCA59F380CdAE574",
      "role": "verified-smoke-test-token",
      "runtimeHash": "0xa5ccb6befed8f891659b7340d2aeb5bc6ea70f5922c6ccd7eedec063e51f95d6",
      "sourceVerification": {
        "status": "exact-match",
        "explorerUrl": "https://explorer.arc.io/address/0x6367d4a17Dc40f57569f9cc6CCA59F380CdAE574?tab=contract",
        "observedAt": "2026-09-16T22:20:25.978Z"
      },
      "abi": [
        {
          "type": "function",
          "name": "name",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "symbol",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "string",
              "internalType": "string"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "decimals",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint8",
              "internalType": "uint8"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "totalSupply",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "balanceOf",
          "inputs": [
            {
              "name": "account",
              "type": "address",
              "internalType": "address"
            }
          ],
          "outputs": [
            {
              "name": "",
              "type": "uint256",
              "internalType": "uint256"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "function",
          "name": "launchpad",
          "inputs": [],
          "outputs": [
            {
              "name": "",
              "type": "address",
              "internalType": "address"
            }
          ],
          "stateMutability": "view"
        },
        {
          "type": "event",
          "name": "Transfer",
          "inputs": [
            {
              "name": "from",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "to",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "value",
              "type": "uint256",
              "indexed": false,
              "internalType": "uint256"
            }
          ],
          "anonymous": false
        }
      ],
      "additionalSourceVerification": {
        "explorer": "A/X Explorer",
        "status": "runtime_match",
        "verified": true,
        "exactMatch": false,
        "explorerUrl": "https://arcexplorer.org/address/0x6367d4a17Dc40f57569f9cc6CCA59F380CdAE574#code",
        "verifiedAt": "2026-09-16T22:38:05.373Z"
      }
    },
    "manager": {
      "name": "PoolManager",
      "address": "0x8366a39CC670B4001A1121B8F6A443A643e40951",
      "role": "external-uniswap-v4",
      "runtimeHash": "0xbd3881180b547f5fe817545743cfb4343e96b1bc6640dcd70c106b0066e95626",
      "sourceVerification": {
        "status": "partial-match",
        "explorerUrl": "https://explorer.arc.io/address/0x8366a39CC670B4001A1121B8F6A443A643e40951?tab=contract",
        "observedAt": "2026-09-16T22:15:22.175Z"
      },
      "abi": [
        {
          "type": "event",
          "name": "Swap",
          "inputs": [
            {
              "name": "id",
              "type": "bytes32",
              "indexed": true,
              "internalType": "PoolId"
            },
            {
              "name": "sender",
              "type": "address",
              "indexed": true,
              "internalType": "address"
            },
            {
              "name": "amount0",
              "type": "int128",
              "indexed": false,
              "internalType": "int128"
            },
            {
              "name": "amount1",
              "type": "int128",
              "indexed": false,
              "internalType": "int128"
            },
            {
              "name": "sqrtPriceX96",
              "type": "uint160",
              "indexed": false,
              "internalType": "uint160"
            },
            {
              "name": "liquidity",
              "type": "uint128",
              "indexed": false,
              "internalType": "uint128"
            },
            {
              "name": "tick",
              "type": "int24",
              "indexed": false,
              "internalType": "int24"
            },
            {
              "name": "fee",
              "type": "uint24",
              "indexed": false,
              "internalType": "uint24"
            }
          ],
          "anonymous": false
        }
      ]
    }
  },
  "indexer": {
    "startBlock": "21217916",
    "discovery": {
      "contract": "launchpad",
      "event": "LaunchCreated",
      "tokenField": "token"
    },
    "curveTrade": {
      "contract": "launchpad",
      "event": "Trade"
    },
    "poolTrade": {
      "contract": "router",
      "event": "PoolTrade",
      "scope": "Canonical Burnable router; reconcile against its manager Swap and per-swap hook fee/burn logs."
    },
    "poolIdSources": [
      "launchpad.getMarket(token).poolId",
      "hook.poolIdOf(token)",
      "launchpad.Graduated.poolId"
    ],
    "poolIdType": "bytes32",
    "identity": [
      "chainId",
      "blockHash",
      "transactionHash",
      "logIndex"
    ],
    "abiScope": "Exact artifact entries for canonical reads and events. quoteExactInput is nonpayable in the ABI but must be simulated with eth_call; this bundle does not authorize or submit transactions.",
    "accounting": "Scope every log to its exact emitter, canonical pool, token, block hash, transaction hash and log index. Reconcile each user manager Swap with its own hook fee/burn interval and router PoolTrade when present; do not double-count hook buybacks or receipt-wide totals. External router calls may have trader:null. Keep trade, graduation-dust and voluntary burns separate. Gross USDC volume includes the sell fee; execution prices use actual user input/output including fees. Roll back records when a committed canonical block hash changes.",
    "canonicalPoolSwap": {
      "contract": "manager",
      "event": "Swap",
      "poolIdField": "id",
      "scope": "Only the canonical pool ID derived from the launched token, USDC, fee 0, tick spacing 60 and Burnable hook. Includes other routers using that pool.",
      "externalRouterTrader": null,
      "internalBurnBuybacks": "Do not count hook-internal buyback Swap events as additional user trades."
    },
    "holders": {
      "contract": "launched-token",
      "event": "Transfer",
      "scope": "Replay transfers from the initial mint through the canonical checkpoint. Exclude zero balances and the burn address; classify protocol inventory separately.",
      "balanceDecimals": 18
    }
  },
  "api": {
    "baseUrl": "https://burnable.fun",
    "method": "GET",
    "sendsTransactions": false,
    "endpoints": {
      "state": "/api/chain/state",
      "activity": "/api/chain/activity",
      "quote": "/api/chain/quote",
      "launchQuote": "/api/chain/launch-quote",
      "archive": "/api/chain/archive"
    },
    "examples": {
      "state": "/api/chain/state?network=arc",
      "tokenState": "/api/chain/state?network=arc&token=0x6367d4a17Dc40f57569f9cc6CCA59F380CdAE574",
      "activity": "/api/chain/activity?network=arc&token=0x6367d4a17Dc40f57569f9cc6CCA59F380CdAE574",
      "archiveMarkets": "/api/chain/archive?network=arc",
      "archiveToken": "/api/chain/archive?network=arc&token=0x6367d4a17Dc40f57569f9cc6CCA59F380CdAE574&hours=24"
    },
    "quote": {
      "required": [
        "network=arc",
        "token=<address>",
        "account=<address>",
        "side=buy|sell",
        "amount=<positive integer>"
      ],
      "optional": [
        "slippageBps=10..500 (default 100)"
      ],
      "inputDecimals": {
        "buy": 6,
        "sell": 18
      },
      "maximumExclusive": "340282366920938463463374607431768211456",
      "expiryMilliseconds": 45000
    },
    "limitations": [
      "Chain state, quotes and bounded activity reads return no-store and fail closed when chain verification fails. Ready archive responses may be cached for 10 seconds in the browser and 30 seconds at the shared edge; syncing/error responses are no-store.",
      "The legacy activity endpoint remains limited to the latest 10000 blocks and 40 trades. Use archive for persistent history and inspect its status, coverage and checkpoint timestamp.",
      "A syncing, stale or incomplete archive is not a complete current 24-hour result. Holder balances and supply are as of its checkpoint, not an unconfirmed pending transaction.",
      "Revalidate network, account, token, phase, expiry, block hash, deadline and minimum output before wallet signing."
    ],
    "launchQuote": "Use network=arc, account, pair=USDC, name, symbol and extraFeeBps=0..800. Optional description, website, twitter, telegram, discord and image are validated metadata. The fixed-USDC target quote expires after 60 seconds and is bound to the launch draft.",
    "archive": {
      "method": "GET",
      "network": "arc",
      "token": "Optional address. With token: {archive: TokenArchive|null, index}; without token: {markets, index}.",
      "hours": {
        "accepted": [
          "1",
          "6",
          "24",
          "all"
        ],
        "default": "24",
        "scope": "Chart candles and selected-window aggregates. Trades and burn history still page through the full indexed history."
      },
      "pagination": {
        "defaultOffset": 0,
        "holders": {
          "parameter": "holdersOffset",
          "pageSize": 25,
          "nextField": "holdersNextOffset"
        },
        "trades": {
          "parameter": "tradesOffset",
          "pageSize": 40,
          "nextField": "tradesNextOffset"
        },
        "burns": {
          "parameter": "burnsOffset",
          "pageSize": 40,
          "nextField": "burnsNextOffset"
        },
        "endOfHistory": "A null next offset means no further page in this snapshot."
      },
      "index": {
        "fields": [
          "status",
          "targetBlock",
          "indexedBlock",
          "indexedTimestamp",
          "updatedAt",
          "source"
        ],
        "status": [
          "ready",
          "syncing"
        ],
        "indexedTimestamp": "Unix seconds for the last canonical checkpoint; null before the first committed range.",
        "updatedAt": "ISO timestamp of the stored archive head update, not proof that the chain checkpoint is fresh.",
        "ready": "The indexed block has reached its captured target and the checkpoint timestamp is no more than 120 seconds old or 30 seconds in the future.",
        "source": "Arc canonical logs"
      },
      "coverage": "Persistent canonical history from the launchpad deployment. Initial or catch-up responses may be syncing and archive may be null; do not present incomplete coverage as complete 24h data.",
      "scope": "Burnable bonding curve plus its canonical Uniswap v4 pool, including external routers. Unrelated pools are not covered.",
      "candles": {
        "price": "Exact numerator/denominator strings in human USDC per token, based on execution prices including fees.",
        "interval": "Adaptive to the requested range.",
        "emptyIntervals": "Absent; no synthetic flat candles or pre-launch prices."
      },
      "units": {
        "reserve": 6,
        "token": 18,
        "holderShare": "Exact balance / current supply ratio; multiply by 100 for percent.",
        "priceChange": "Exact percentage ratio between the first and last actual execution in the selected window."
      },
      "volumeBasis": "Gross USDC reserve volume: buy input, or sell output plus fee.",
      "burns": "All-time totals for trade, graduation and voluntary burns; entries are separately paginated.",
      "trader": "Known wallet on Burnable router/curve trades; null for an external router when the end-user identity is not proven.",
      "reorgs": "Canonical checkpoint hashes are verified; records after a mismatched checkpoint are rolled back before replay.",
      "cache": {
        "ready": "public, max-age=10, s-maxage=30",
        "syncing": "no-store"
      },
      "clientPollingSeconds": {
        "ready": 60,
        "syncing": 10
      }
    }
  },
  "externalDiscovery": {
    "gmgn": {
      "checkedOn": "2026-09-17",
      "sampleTokenUrl": "https://gmgn.ai/arc/token/0x6367d4a17dc40f57569f9cc6cca59f380cdae574",
      "status": "token-discoverable",
      "launchpadLabelObserved": "Unknown",
      "curveAdapterVerified": false,
      "statement": "ERC20 token discovery, holder data and burn transfers are confirmed. Burnable bonding-curve price, trades and launchpad attribution are not confirmed.",
      "burnTransfersObserved": true,
      "sourceVerificationLabels": "Conflicting GMGN labels observed before A/X verification. Official explorer verifies all eight as exact match; BTEST and six protocol contracts also have A/X runtime_match records. External badge refresh is not confirmed.",
      "integrationRequestSubmitted": true
    }
  },
  "verification": {
    "ownExactMatchCount": 8,
    "externalPoolManager": "partial-match",
    "securityAudit": false,
    "statement": "Source verification matches published code to deployed bytecode; it is not an independent security audit.",
    "additionalExplorer": {
      "origin": "https://arcexplorer.org",
      "verifiedCount": 7,
      "totalOwned": 8,
      "matchType": "runtime_match",
      "pendingReasons": [
        "CREATE2 hook is not indexed as a contract by A/X; its live runtime hash matches the officially verified deployment."
      ]
    }
  },
  "media": {
    "logo": {
      "upload": {
        "method": "POST",
        "endpoint": "/api/media/logo",
        "request": "Same-origin multipart/form-data with one file field. Does not sign or submit a blockchain transaction.",
        "acceptedMimeTypes": [
          "image/png",
          "image/jpeg",
          "image/webp",
          "image/gif"
        ],
        "maxInputBytes": 2097152,
        "maxInputPixels": 16000000
      },
      "normalization": {
        "width": 512,
        "height": 512,
        "contentType": "image/webp",
        "maxOutputBytes": 524288,
        "fit": "contain",
        "animation": "First frame only; output is static.",
        "metadata": "Embedded EXIF/XMP metadata is stripped. Original filename is not used for storage."
      },
      "response": {
        "fields": [
          "url",
          "sha256",
          "contentType",
          "width",
          "height",
          "bytes"
        ],
        "urlPattern": "https://burnable.fun/api/media/logo/{sha256}",
        "hash": "SHA-256 of normalized WebP bytes."
      },
      "read": {
        "method": "GET",
        "endpoint": "/api/media/logo/{sha256}",
        "visibility": "Public by URL",
        "cacheControl": "public, max-age=31536000, immutable"
      },
      "externalUrls": "An HTTPS image URL remains available instead of uploading. The browser loads these URLs with no-referrer; external image hosts still receive the request.",
      "launchMetadata": "The chosen image URL becomes part of the immutable metadata URI and its signed launch-quote hash; the encoded metadata URI is limited to 1024 bytes."
    }
  }
}
