# MathBlocks Refund 2023-02-07 If you have minted any MathBlocks Primes NFTs around 1 year ago, you can follow the instructions below to get a full refund of 0.05 ETH you have sent per mint. I have deployed a contract to refund the ETH and burn the NFT. - **[Refund Contract: 0xdef2907020Eb81CD2BAdCF38eAF75D4AfB58083D](https://etherscan.io/address/0xdef2907020Eb81CD2BAdCF38eAF75D4AfB58083D#code)** - **[Primes NFT Contract: 0xBDA937F5C5f4eFB2261b6FcD25A71A1C350FdF20](https://etherscan.io/address/0xBDA937F5C5f4eFB2261b6FcD25A71A1C350FdF20)** - [Example refund transaction](https://etherscan.io/tx/0x21444a3dcc9998a1e9c5471acaa6d5c4f8eef8c8b548c1c1d97cfbc71e2866ad) You can audit the source yourself, it simply refunds the mint amount and transfers the NFT to itself. You can use Metamask to call the refund contract directly in Etherscan. You will need to approve the contract to transfer your NFTs. Feel free to set a low gas price, the transactions are not time sensitive. To see the token_ids of the NFTs you own, visit the [inventory page](https://etherscan.io/token/0xbda937f5c5f4efb2261b6fcd25a71a1c350fdf20#inventory), click the search button and enter the address that owns the NFT. (The `token_id` is just the number you minted, this step is just to check.) ### Option 1 (I just have 1 NFT / I have many NFTs and don't care about gas) 1. Call [`approve(refund_contract_address, token_id)`](https://etherscan.io/token/0xbda937f5c5f4efb2261b6fcd25a71a1c350fdf20?a=0x125bc62db93669fc2783498742ceb5ca5666a10b#writeContract#F1) on the NFT contract 2. Call [`getRefundForNFT(token_id)`](https://etherscan.io/address/0xdef2907020Eb81CD2BAdCF38eAF75D4AfB58083D#writeContract#F1). 3. Repeat steps 1 and 2 for each NFT you want to refund Refund contract address: `0xdef2907020Eb81CD2BAdCF38eAF75D4AfB58083D` ### Option 2 (I have many NFTs and want to save gas) 1. Call [`setApprovalForAll(refund_contract_address, true)`](https://etherscan.io/token/0xbda937f5c5f4efb2261b6fcd25a71a1c350fdf20?a=0x125bc62db93669fc2783498742ceb5ca5666a10b#writeContract#F18) on the NFT contract 2. Get refunds for each NFT by calling [`getRefundForNFT(token_id)`](https://etherscan.io/address/0xdef2907020Eb81CD2BAdCF38eAF75D4AfB58083D#writeContract#F1) 3. Call [`setApprovalForAll(refund_contract_address, false)`](https://etherscan.io/token/0xbda937f5c5f4efb2261b6fcd25a71a1c350fdf20?a=0x125bc62db93669fc2783498742ceb5ca5666a10b#writeContract#F18) on the NFT contract to undo the approval. Refund contract address: `0xdef2907020Eb81CD2BAdCF38eAF75D4AfB58083D` ## Notes Sorry for not creating a GUI for this, I did not have the resources to hire a frontend developer. Hopefully, this will not be too difficult for you. Also sorry that the project was a disappointment. I tried to do something different, but it did not go as planned due to bad technical planning (we should have deployed contracts in an upgradable way). I wanted to do right with the people who spent time and resources on this project, so I am refunding the full amount at a loss to myself. I will be monitoring the refund contract balance, and if it drops to zero, and I will top it up depending on the number of people who still want a refund.