> For the complete documentation index, see [llms.txt](https://magnify.gitbook.io/magnify.cash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://magnify.gitbook.io/magnify.cash/contracts/magnifyerc721v1.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
