Smart Contract

IEVMBridgeNFTMinter

A.1e4aa0b87d10b141.IEVMBridgeNFTMinter

Valid From

85,982,229

Deployed

1w ago
Feb 16, 2026, 08:14:21 PM UTC

Dependents

0 imports
1import NonFungibleToken from 0x1d7e57aa55817448
2
3/// Contract interface enabling FlowEVMBridge to mint NFTs from implementing bridge contracts.
4///
5access(all)
6contract interface IEVMBridgeNFTMinter {
7
8    access(all) event Minted(type: String, id: UInt64, uuid: UInt64, evmID: UInt256, tokenURI: String, minter: Address)
9    access(all) event TokenURIUpdated(evmID: UInt256, newURI: String, updater: Address)
10
11    /// Account-only method to mint an NFT
12    ///
13    access(account)
14    fun mintNFT(id: UInt256, tokenURI: String): @{NonFungibleToken.NFT} {
15        post {
16            emit Minted(
17                type: result.getType().identifier,
18                id: result.id,
19                uuid: result.uuid,
20                evmID: id,
21                tokenURI: tokenURI,
22                minter: self.account.address
23            )
24        }
25    }
26
27    /// Allows the bridge to update the URI of bridged NFTs. This assumes that the EVM-defining project may contain
28    /// logic (onchain or offchain) which updates NFT metadata in the source ERC721 contract. On bridging, the URI can
29    /// then be updated in this contract to reflect the source ERC721 contract's metadata.
30    ///
31    access(account)
32    fun updateTokenURI(evmID: UInt256, newURI: String) {
33        post {
34            emit TokenURIUpdated(evmID: evmID, newURI: newURI, updater: self.account.address)
35        }
36    }
37}
38