# MagnifyERC721V1

### [State Variables](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#state-variables) <a href="#state-variables" id="state-variables"></a>

#### [baseURI](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#baseuri) <a href="#baseuri" id="baseuri"></a>

```solidity
string public baseURI;
```

#### [magnifyCash](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#magnifycash) <a href="#magnifycash" id="magnifycash"></a>

```solidity
address public magnifyCash;
```

#### [\_name](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#_name) <a href="#name" id="name"></a>

```solidity
string private _name;
```

#### [\_symbol](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#_symbol) <a href="#symbol" id="symbol"></a>

```solidity
string private _symbol;
```

### [Functions](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#functions) <a href="#functions" id="functions"></a>

#### [onlyMagnifyCash](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#onlymagnifycash) <a href="#onlymagnifycash" id="onlymagnifycash"></a>

*Requires caller to be the Magnify Cash contract*

```solidity
modifier onlyMagnifyCash();
```

#### [constructor](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#constructor) <a href="#constructor" id="constructor"></a>

```solidity
constructor(string memory name, string memory symbol, string memory _baseURI, address initialOwner);
```

#### [name](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#name) <a href="#name" id="name"></a>

```solidity
function name() public view override returns (string memory);
```

#### [symbol](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#symbol) <a href="#symbol" id="symbol"></a>

```solidity
function symbol() public view override returns (string memory);
```

#### [tokenURI](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#tokenuri) <a href="#tokenuri" id="tokenuri"></a>

```solidity
function tokenURI(uint256 tokenId) public view override returns (string memory);
```

#### [setMagnifyCash](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#setmagnifycash) <a href="#setmagnifycash" id="setmagnifycash"></a>

*Set Magnify Cash contract address, requires caller to be owner*

```solidity
function setMagnifyCash(address _magnifyCash) external onlyOwner;
```

#### [setBaseURI](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#setbaseuri) <a href="#setbaseuri" id="setbaseuri"></a>

*Update base URI but requires caller to be owner*

```solidity
function setBaseURI(string memory _baseURI) external onlyOwner;
```

#### [mint](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#mint) <a href="#mint" id="mint"></a>

*Call \_mint but requires caller to be the Magnify Cash contract*

```solidity
function mint(address to, uint256 tokenId) external onlyMagnifyCash;
```

#### [burn](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#burn) <a href="#burn" id="burn"></a>

*Call \_burn but requires caller to be the Magnify Cash contract*

```solidity
function burn(uint256 tokenId) external onlyMagnifyCash;
```

### [Events](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#events) <a href="#events" id="events"></a>

#### [Initialized](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#initialized) <a href="#initialized" id="initialized"></a>

```solidity
event Initialized(address owner, string name, string symbol, string baseURI);
```

#### [BaseURISet](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#baseuriset) <a href="#baseuriset" id="baseuriset"></a>

```solidity
event BaseURISet(string indexed baseURI);
```

#### [MagnifyCashSet](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#magnifycashset) <a href="#magnifycashset" id="magnifycashset"></a>

```solidity
event MagnifyCashSet(address indexed magnifyCash);
```

### [Errors](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#errors) <a href="#errors" id="errors"></a>

#### [NameIsEmpty](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#nameisempty) <a href="#nameisempty" id="nameisempty"></a>

```solidity
error NameIsEmpty();
```

#### [SymbolIsEmpty](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#symbolisempty) <a href="#symbolisempty" id="symbolisempty"></a>

```solidity
error SymbolIsEmpty();
```

#### [BaseURIIsEmpty](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#baseuriisempty) <a href="#baseuriisempty" id="baseuriisempty"></a>

```solidity
error BaseURIIsEmpty();
```

#### [CallerIsNotMagnifyCash](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#callerisnotmagnifycash) <a href="#callerisnotmagnifycash" id="callerisnotmagnifycash"></a>

```solidity
error CallerIsNotMagnifyCash();
```

#### [MintToZeroAddress](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#minttozeroaddress) <a href="#minttozeroaddress" id="minttozeroaddress"></a>

```solidity
error MintToZeroAddress();
```

#### [MagnifyCashIsZeroAddress](https://docs.magnify.cash/contracts/contracts/MagnifyERC721V1.sol/contract.MagnifyERC721V1.html#magnifycashiszeroaddress) <a href="#magnifycashiszeroaddress" id="magnifycashiszeroaddress"></a>

```solidity
error MagnifyCashIsZeroAddress();
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://magnify.gitbook.io/magnify.cash/contracts/magnifyerc721v1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
