{
  "v": 1,
  "requestId": "28ae2bfe-7cf0-4f34-8c9e-36e0a4db4c7f",
  "chainId": 1,
  "window": {
    "toBlock": 26054970,
    "fromBlock": 26047817,
    "toBlockHash": "0xa648bb45a1cde622857c5f72239d11d3a094671474c2f1184df0809b4afa577d"
  },
  "answerType": "bool",
  "answer": true,
  "definitions": {
    "burn address": "The commonly used 0x000000000000000000000000000000000000dead address, distinct from the zero address.",
    "permanently restricted": "A transfer to that address always reverts under the token's fixed, non-upgradeable deployed code, with no administrative bypass."
  },
  "recipe": {
    "kind": "panel",
    "source": "https://docs.openzeppelin.com/contracts/5.x/api/token/erc20"
  },
  "notes": "Yes. OpenZeppelin's ERC20 API identifies _update(from,to,value) as the customization point for transfers, mints and burns. An implementation can revert when to == address(0x000000000000000000000000000000000000dEaD), covering both transfer and transferFrom through the shared update path. With fixed non-upgradeable deployed code and no bypass, that guard is permanent. Solidity's documentation states deployed immutable values become permanent: https://docs.soliditylang.org/en/latest/contracts.html. The source URLs are OpenZeppelin ERC20 API (https://docs.openzeppelin.com/contracts/5.x/api/token/erc20) and Solidity contracts documentation (https://docs.soliditylang.org/en/latest/contracts.html)."
}
