# ERC721R存在的风险和BUG

By [Renaissance Labs](https://paragraph.com/@renaissance-labs) · 2022-04-13

---

1\. owner权限过大
-------------

在 ERC721R 示例合约中 owner 可以通过 setRefundAddress 函数任意设置接收用户退回的 NFT 地址。当此退回地址持有目标 NFT 时，其可以通过调用 refund 函数不断的进行退款操作从而耗尽用户在合约中锁定的购买资金。且示例合约中存在 ownerMint 函数，owner 可在 NFT mint 未达总供应量的情况下进行 mint。因此 ERC721R 的实现仍是防君子不防小人，导致项目方利用此问题进行 RugPull。

2.缺少对退款接收地址的限制条件
----------------

由于缺少对退款接收地址的限制条件，开发者可通过bug，在ERC721R的限制期内抽走NFT合约中的资金，进而绕开该协议的约束，实现RugPull。

---

*Originally published on [Renaissance Labs](https://paragraph.com/@renaissance-labs/erc721r-bug)*
