{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "nft-operator-approvals",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/nft-operator-approvals/",
  "collection": "ethereum",
  "title": "NFT operator approvals: what does “approve all” allow?",
  "description": "Learn how NFT operator permissions differ from individual-token approvals and how to inspect or revoke their scope.",
  "aliases": [
    "NFT approve all meaning",
    "revoke NFT operator approval"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:27:58.939Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "An NFT operator approval can authorize another address to transfer all of your tokens within a particular NFT contract. ERC-721 also supports approval for an individual token; ERC-1155 uses its operator model across token IDs in that contract. The scope is the collection contract, not every asset in the wallet, and disconnecting a website does not revoke it.",
    "claimId": "nft-operator-approvals-quick-answer",
    "sourceIds": [
      "x425-eth-erc721",
      "x425-eth-erc1155"
    ]
  },
  "keyFacts": [
    {
      "label": "Collection scope",
      "value": "setApprovalForAll applies within the contract where it is called.",
      "sourceIds": [
        "x425-eth-erc721",
        "x425-eth-erc1155"
      ],
      "id": "collection-scope",
      "claimId": "nft-operator-approvals-fact-collection-scope"
    },
    {
      "label": "Single token",
      "value": "ERC-721 approve can authorize a specific token ID.",
      "sourceIds": [
        "x425-eth-erc721"
      ],
      "id": "single-token",
      "claimId": "nft-operator-approvals-fact-single-token"
    },
    {
      "label": "Revocation",
      "value": "An operator can be disabled with setApprovalForAll using false.",
      "sourceIds": [
        "x425-eth-erc721",
        "x425-eth-erc1155"
      ],
      "id": "revocation",
      "claimId": "nft-operator-approvals-fact-revocation"
    }
  ],
  "prerequisites": [
    "ethereum-token-approvals"
  ],
  "sections": [
    {
      "id": "scope",
      "heading": "Read both the contract and the operator",
      "sourceIds": [
        "x425-eth-erc721",
        "x425-eth-erc1155"
      ],
      "paragraphs": [
        "The contract receiving the approval identifies which collection is affected. The operator address identifies who receives transfer authority. A marketplace brand shown by an interface is not a substitute for checking these two values.",
        "ERC-1155 can group many token IDs and quantities in one contract, so an operator approval may cover a wider set of holdings than one item displayed on a sale page."
      ]
    },
    {
      "id": "example",
      "heading": "Approving one collection does not approve every NFT",
      "sourceIds": [
        "x425-eth-erc721"
      ],
      "paragraphs": [
        "Suppose you own three tokens in Collection A and one in Collection B. An operator approval in A can authorize movement of all three A tokens. It does not by that operation authorize B’s separate contract.",
        "If you intended to list just one A token, inspect whether the marketplace requires collection-wide approval and how it uses a separately signed sale order. The approval and order impose different boundaries."
      ]
    },
    {
      "id": "revocation",
      "heading": "Change the onchain permission when it is no longer needed",
      "sourceIds": [
        "x425-eth-erc721",
        "x425-eth-erc1155"
      ],
      "paragraphs": [
        "Revoking an operator approval requires changing the relevant contract state. Removing a website from a connected-app list does not call this function. Read the resulting permission on the correct chain after the revocation is included.",
        "Revocation cannot reverse transfers already completed. An ERC-721 token-level approval and collection-wide approval are separate permission paths, so inspect both when applicable."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does an NFT approval authorize spending all my ETH?",
      "answer": "The standard NFT operator permission concerns tokens in that NFT contract. Other transactions or signatures may grant different authority and should be inspected separately.",
      "sourceIds": [
        "x425-eth-erc721",
        "x425-eth-erc1155"
      ]
    },
    {
      "question": "Will sending one ERC-721 token clear every operator approval?",
      "answer": "No. The token’s individual approval is cleared on transfer, but collection-wide operator permissions are separate contract state.",
      "sourceIds": [
        "x425-eth-erc721"
      ]
    }
  ],
  "claims": [
    {
      "id": "nft-operator-approvals-quick-answer",
      "articleSlug": "nft-operator-approvals",
      "statement": "An NFT operator approval can authorize another address to transfer all of your tokens within a particular NFT contract. ERC-721 also supports approval for an individual token; ERC-1155 uses its operator model across token IDs in that contract. The scope is the collection contract, not every asset in the wallet, and disconnecting a website does not revoke it.",
      "sourceIds": [
        "source-b08b9aae11ea4085",
        "source-a8902fec2ff6f520"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata"
        },
        {
          "sourceId": "source-a8902fec2ff6f520",
          "locator": "Safe transfer rules; operator approvals; minting and burning"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read approve,getApproved,setApprovalForAll,isApprovedForAll and Transfer clears tokenapproval, plus ERC1155operator model. CollectionA3tokens/B1example respectscontractscope. Disconnecting session cannot modifyapprovalstate."
        ]
      }
    },
    {
      "id": "nft-operator-approvals-fact-collection-scope",
      "articleSlug": "nft-operator-approvals",
      "statement": "Collection scope: setApprovalForAll applies within the contract where it is called.",
      "sourceIds": [
        "source-b08b9aae11ea4085",
        "source-a8902fec2ff6f520"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata"
        },
        {
          "sourceId": "source-a8902fec2ff6f520",
          "locator": "Safe transfer rules; operator approvals; minting and burning"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read approve,getApproved,setApprovalForAll,isApprovedForAll and Transfer clears tokenapproval, plus ERC1155operator model. CollectionA3tokens/B1example respectscontractscope. Disconnecting session cannot modifyapprovalstate."
        ]
      }
    },
    {
      "id": "nft-operator-approvals-fact-single-token",
      "articleSlug": "nft-operator-approvals",
      "statement": "Single token: ERC-721 approve can authorize a specific token ID.",
      "sourceIds": [
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read approve,getApproved,setApprovalForAll,isApprovedForAll and Transfer clears tokenapproval, plus ERC1155operator model. CollectionA3tokens/B1example respectscontractscope. Disconnecting session cannot modifyapprovalstate."
        ]
      }
    },
    {
      "id": "nft-operator-approvals-fact-revocation",
      "articleSlug": "nft-operator-approvals",
      "statement": "Revocation: An operator can be disabled with setApprovalForAll using false.",
      "sourceIds": [
        "source-b08b9aae11ea4085",
        "source-a8902fec2ff6f520"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata"
        },
        {
          "sourceId": "source-a8902fec2ff6f520",
          "locator": "Safe transfer rules; operator approvals; minting and burning"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read approve,getApproved,setApprovalForAll,isApprovedForAll and Transfer clears tokenapproval, plus ERC1155operator model. CollectionA3tokens/B1example respectscontractscope. Disconnecting session cannot modifyapprovalstate."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-eth-erc721",
      "label": "ERC-721 NFT standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-721",
      "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata",
      "note": "Ownership, receiver checks, token-level and operator approvals, mint/burn event semantics.",
      "version": "ERC-721",
      "checkedAt": "2026-10-02T18:55:25.399Z",
      "contentSha256": "bedd672103f3ebb6803ce2bddb33a9ff3d23b08e8e3ae3173b6a5b016f65e2a1",
      "recordId": "source-b08b9aae11ea4085"
    },
    {
      "id": "x425-eth-erc1155",
      "label": "ERC-1155 multi-token standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-1155",
      "locator": "Safe transfer rules; operator approvals; minting and burning",
      "note": "Receiver acceptance, collection-wide operators, balance accounting and burn events.",
      "version": "ERC-1155",
      "checkedAt": "2026-10-02T18:55:25.400Z",
      "contentSha256": "50eece6ce1ad417b39ae7183a5626c6f9e3b11fc16a00ba5f630bc6fed01cfd2",
      "recordId": "source-a8902fec2ff6f520"
    }
  ],
  "related": {
    "articles": [
      "ethereum-token-approvals",
      "erc-721-nfts",
      "erc-1155-multi-tokens",
      "nft-safe-transfers",
      "nft-listings-and-offers"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “NFT operator approvals: what does “approve all” allow?.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/nft-operator-approvals/"
}
