ERC-1155
Overview
Max Total Supply
10,000 LP
Holders
48
Total Transfers
-
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Minimal Proxy Contract for 0x9f36ee33fd56c7d9a78facd3249c580b1ca464a2
Contract Name:
ERC1155SeaDropCloneable
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import {ERC1155SeaDropContractOffererCloneable} from "./ERC1155SeaDropContractOffererCloneable.sol";/*** @title ERC1155SeaDropCloneable* @author James Wenzel (emo.eth)* @author Ryan Ghods (ralxz.eth)* @author Stephan Min (stephanm.eth)* @author Michael Cohen (notmichael.eth)* @custom:contributor Limit Break (@limitbreak)* @notice A cloneable ERC1155 token contract that can mint as a* Seaport contract offerer.* Implements Limit Break's Creator Token Standards transfer* validation for royalty enforcement.*/contract ERC1155SeaDropCloneable is ERC1155SeaDropContractOffererCloneable {/*** @notice Initialize the token contract.** @param allowedConfigurer The address of the contract allowed to* implementation code. Also contains SeaDrop* implementation code.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { IERC1155SeaDrop } from "../interfaces/IERC1155SeaDrop.sol";import { ISeaDropToken } from "../interfaces/ISeaDropToken.sol";import {ERC1155ContractMetadataCloneable} from "./ERC1155ContractMetadataCloneable.sol";import {ERC1155SeaDropContractOffererStorage} from "../lib/ERC1155SeaDropContractOffererStorage.sol";import {ERC1155SeaDropErrorsAndEvents} from "../lib/ERC1155SeaDropErrorsAndEvents.sol";import { PublicDrop } from "../lib//ERC1155SeaDropStructs.sol";import { AllowListData } from "../lib/SeaDropStructs.sol";import {ERC1155ConduitPreapproved} from "../lib/ERC1155ConduitPreapproved.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { ISeaDropToken } from "./ISeaDropToken.sol";import { PublicDrop } from "../lib/ERC1155SeaDropStructs.sol";/*** @dev A helper interface to get and set parameters for ERC1155SeaDrop.* The token does not expose these methods as part of its external* interface to optimize contract size, but does implement them.*/interface IERC1155SeaDrop is ISeaDropToken {/*** @notice Update the SeaDrop public drop parameters at a given index.** @param publicDrop The new public drop parameters.* @param index The public drop index.*/function updatePublicDrop(PublicDrop calldata publicDrop,uint256 index) external;/*** @notice Returns the public drop stage parameters at a given index.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import {ISeaDropTokenContractMetadata} from "./ISeaDropTokenContractMetadata.sol";import { AllowListData, CreatorPayout } from "../lib/SeaDropStructs.sol";/*** @dev A helper base interface for IERC721SeaDrop and IERC1155SeaDrop.* The token does not expose these methods as part of its external* interface to optimize contract size, but does implement them.*/interface ISeaDropToken is ISeaDropTokenContractMetadata {/*** @notice Update the SeaDrop allowed Seaport contracts privileged to mint.* Only the owner can use this function.** @param allowedSeaport The allowed Seaport addresses.*/function updateAllowedSeaport(address[] calldata allowedSeaport) external;/*** @notice Update the SeaDrop allowed fee recipient.* Only the owner can use this function.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import {IERC1155ContractMetadata} from "../interfaces/IERC1155ContractMetadata.sol";import {ERC1155ConduitPreapproved} from "../lib/ERC1155ConduitPreapproved.sol";import {ICreatorToken,ILegacyCreatorToken} from "../interfaces/ICreatorToken.sol";import { ITransferValidator1155 } from "../interfaces/ITransferValidator.sol";import { TokenTransferValidator } from "../lib/TokenTransferValidator.sol";import { ERC1155 } from "solady/src/tokens/ERC1155.sol";import { ERC2981 } from "solady/src/tokens/ERC2981.sol";import { Ownable } from "solady/src/auth/Ownable.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { PublicDrop } from "./ERC1155SeaDropStructs.sol";import { CreatorPayout } from "./SeaDropStructs.sol";library ERC1155SeaDropContractOffererStorage {struct Layout {/// @notice The allowed Seaport addresses that can mint.mapping(address => bool) _allowedSeaport;/// @notice The enumerated allowed Seaport addresses.address[] _enumeratedAllowedSeaport;/// @notice The public drop data.mapping(uint256 => PublicDrop) _publicDrops;/// @notice The enumerated public drop indexes.uint256[] _enumeratedPublicDropIndexes;/// @notice The creator payout addresses and basis points.CreatorPayout[] _creatorPayouts;/// @notice The allow list merkle root.bytes32 _allowListMerkleRoot;/// @notice The allowed fee recipients.mapping(address => bool) _allowedFeeRecipients;/// @notice The enumerated allowed fee recipients.address[] _enumeratedFeeRecipients;/// @notice The allowed server-side signers.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { PublicDrop } from "./ERC1155SeaDropStructs.sol";import { SeaDropErrorsAndEvents } from "./SeaDropErrorsAndEvents.sol";interface ERC1155SeaDropErrorsAndEvents is SeaDropErrorsAndEvents {/*** @dev Revert with an error if an empty PublicDrop is provided* for an already-empty public drop.*/error PublicDropStageNotPresent();/*** @dev Revert with an error if the mint quantity exceeds the* max minted per wallet for a certain token id.*/error MintQuantityExceedsMaxMintedPerWalletForTokenId(uint256 tokenId,uint256 total,uint256 allowed);/*** @dev Revert with an error if the target token id to mint is not within
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { AllowListData, CreatorPayout } from "./SeaDropStructs.sol";/*** @notice A struct defining public drop data.* Designed to fit efficiently in two storage slots.** @param startPrice The start price per token. (Up to 1.2m* of native token, e.g. ETH, MATIC)* @param endPrice The end price per token. If this differs* from startPrice, the current price will* be calculated based on the current time.* @param startTime The start time, ensure this is not zero.* @param endTime The end time, ensure this is not zero.* @param restrictFeeRecipients If false, allow any fee recipient;* if true, check fee recipient is allowed.* @param paymentToken The payment token address. Null for* native token.* @param fromTokenId The start token id for the stage.* @param toTokenId The end token id for the stage.* @param maxTotalMintableByWallet Maximum total number of mints a user is* allowed. (The limit for this field is* 2^16 - 1)* @param maxTotalMintableByWalletPerToken Maximum total number of mints a user
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;/*** @notice A struct defining a creator payout address and basis points.** @param payoutAddress The payout address.* @param basisPoints The basis points to pay out to the creator.* The total creator payouts must equal 10_000 bps.*/struct CreatorPayout {address payoutAddress;uint16 basisPoints;}/*** @notice A struct defining allow list data (for minting an allow list).** @param merkleRoot The merkle root for the allow list.* @param publicKeyURIs If the allowListURI is encrypted, a list of URIs* pointing to the public keys. Empty if unencrypted.* @param allowListURI The URI for the allow list.*/struct AllowListData {bytes32 merkleRoot;string[] publicKeyURIs;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { ERC1155 } from "solady/src/tokens/ERC1155.sol";/*** @title ERC1155ConduitPreapproved* @notice Solady's ERC1155 with the OpenSea conduit preapproved.*/abstract contract ERC1155ConduitPreapproved is ERC1155 {/// @dev The canonical OpenSea conduit.address internal constant _CONDUIT =0x1E0049783F008A0085193E00003D00cd54003c71;function safeTransferFrom(address from,address to,uint256 id,uint256 amount,bytes calldata data) public virtual override {_safeTransfer(_by(), from, to, id, amount, data);}function safeBatchTransferFrom(address from,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Simple ERC1155 implementation./// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC1155.sol)/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token/ERC1155/ERC1155.sol)////// @dev Note:/// The ERC1155 standard allows for self-approvals./// For performance, this implementation WILL NOT revert for such actions./// Please add any checks with overrides if desired.abstract contract ERC1155 {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* CUSTOM ERRORS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev The lengths of the input arrays are not the same.error ArrayLengthsMismatch();/// @dev Cannot mint or transfer to the zero address.error TransferToZeroAddress();/// @dev The recipient's balance has overflowed.error AccountBalanceOverflow();
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {BasicOrderType,ItemType,OrderType,Side} from "./ConsiderationEnums.sol";import {CalldataPointer,MemoryPointer} from "../helpers/PointerLibraries.sol";/*** @dev An order contains eleven components: an offerer, a zone (or account that* can cancel the order or restrict who can fulfill the order depending on* the type), the order type (specifying partial fill support as well as* restricted order status), the start and end time, a hash that will be* provided to the zone when validating restricted orders, a salt, a key* corresponding to a given conduit, a counter, and an arbitrary number of* offer items that can be spent along with consideration items that must* be received by their respective recipient.*/struct OrderComponents {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {ReceivedItem, Schema, SpentItem} from "../lib/ConsiderationStructs.sol";import {IERC165} from "../interfaces/IERC165.sol";/*** @title ContractOffererInterface* @notice Contains the minimum interfaces needed to interact with a contract* offerer.*/interface ContractOffererInterface is IERC165 {/*** @dev Generates an order with the specified minimum and maximum spent* items, and optional context (supplied as extraData).** @param fulfiller The address of the fulfiller.* @param minimumReceived The minimum items that the caller is willing to* receive.* @param maximumSpent The maximum items the caller is willing to spend.* @param context Additional context of the order.** @return offer A tuple containing the offer items.* @return consideration A tuple containing the consideration items.*/function generateOrder(
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.19;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;interface ISeaDropTokenContractMetadata {/*** @dev Emit an event for token metadata reveals/updates,* according to EIP-4906.** @param _fromTokenId The start token id.* @param _toTokenId The end token id.*/event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);/*** @dev Emit an event when the URI for the collection-level metadata* is updated.*/event ContractURIUpdated(string newContractURI);/*** @dev Emit an event with the previous and new provenance hash after* being updated.*/event ProvenanceHashUpdated(bytes32 previousHash, bytes32 newHash);/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import {ISeaDropTokenContractMetadata} from "./ISeaDropTokenContractMetadata.sol";interface IERC1155ContractMetadata is ISeaDropTokenContractMetadata {/*** @dev A struct representing the supply info for a token id,* packed into one storage slot.** @param maxSupply The max supply for the token id.* @param totalSupply The total token supply for the token id.* Subtracted when an item is burned.* @param totalMinted The total number of tokens minted for the token id.*/struct TokenSupply {uint64 maxSupply; // 64/256 bitsuint64 totalSupply; // 128/256 bitsuint64 totalMinted; // 192/256 bits}/*** @dev Emit an event when the max token supply for a token id is updated.*/
1234567891011121314151617181920212223// SPDX-License-Identifier: MITpragma solidity ^0.8.17;interface ICreatorToken {event TransferValidatorUpdated(address oldValidator, address newValidator);function getTransferValidator() external view returns (address validator);function getTransferValidationFunction()externalviewreturns (bytes4 functionSignature, bool isViewFunction);function setTransferValidator(address validator) external;}interface ILegacyCreatorToken {event TransferValidatorUpdated(address oldValidator, address newValidator);function getTransferValidator() external view returns (address validator);function setTransferValidator(address validator) external;}
1234567891011121314151617181920212223// SPDX-License-Identifier: MITpragma solidity ^0.8.17;interface ITransferValidator721 {/// @notice Ensure that a transfer has been authorized for a specific tokenIdfunction validateTransfer(address caller,address from,address to,uint256 tokenId) external view;}interface ITransferValidator1155 {/// @notice Ensure that a transfer has been authorized for a specific amount of a specific tokenId, and reduce the transferable amount remainingfunction validateTransfer(address caller,address from,address to,uint256 tokenId,uint256 amount) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.17;import { ICreatorToken } from "../interfaces/ICreatorToken.sol";/*** @title TokenTransferValidator* @notice Functionality to use a transfer validator.*/abstract contract TokenTransferValidator is ICreatorToken {/// @dev Store the transfer validator. The null address means no transfer validator is set.address internal _transferValidator;/// @notice Revert with an error if the transfer validator is being set to the same address.error SameTransferValidator();/// @notice Returns the currently active transfer validator./// The null address means no transfer validator is set.function getTransferValidator() external view returns (address) {return _transferValidator;}/// @notice Set the transfer validator./// The external method that uses this must include access control.function _setTransferValidator(address newValidator) internal {address oldValidator = _transferValidator;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Simple ERC2981 NFT Royalty Standard implementation./// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC2981.sol)/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/common/ERC2981.sol)abstract contract ERC2981 {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* CUSTOM ERRORS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev The royalty fee numerator exceeds the fee denominator.error RoyaltyOverflow();/// @dev The royalty receiver cannot be the zero address.error RoyaltyReceiverIsZeroAddress();/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* STORAGE *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev The default royalty info is given by:/// ```/// let packed := sload(_ERC2981_MASTER_SLOT_SEED)/// let receiver := shr(96, packed)/// let royaltyFraction := xor(packed, shl(96, receiver))
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Simple single owner authorization mixin./// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)/// @dev While the ownable portion follows/// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,/// the nomenclature for the 2-step ownership handover may be unique to this codebase.abstract contract Ownable {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* CUSTOM ERRORS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev The caller is not authorized to call the function.error Unauthorized();/// @dev The `newOwner` cannot be the zero address.error NewOwnerIsZeroAddress();/// @dev The `pendingOwner` does not have a valid handover request.error NoHandoverRequest();/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* EVENTS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)pragma solidity ^0.8.19;import "../../utils/AddressUpgradeable.sol";/*** @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.** The initialization functions use a version number. Once a version number is used, it is consumed and cannot be* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in* case an upgrade adds a module that needs to be initialized.** For example:** [.hljs-theme-light.nopadding]* ```solidity* contract MyToken is ERC20Upgradeable {* function initialize() initializer public {* __ERC20_init("MyToken", "MTK");* }* }
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { CreatorPayout, PublicDrop } from "./ERC721SeaDropStructs.sol";interface SeaDropErrorsAndEvents {/*** @notice The SeaDrop token types, emitted as part of* `event SeaDropTokenDeployed`.*/enum SEADROP_TOKEN_TYPE {ERC721_STANDARD,ERC721_CLONE,ERC721_UPGRADEABLE,ERC1155_STANDARD,ERC1155_CLONE,ERC1155_UPGRADEABLE}/*** @notice An event to signify that a SeaDrop token contract was deployed.*/event SeaDropTokenDeployed(SEADROP_TOKEN_TYPE tokenType);/*** @notice Revert with an error if the function selector is not supported.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;enum OrderType {// 0: no partial fills, anyone can executeFULL_OPEN,// 1: partial fills supported, anyone can executePARTIAL_OPEN,// 2: no partial fills, only offerer or zone can executeFULL_RESTRICTED,// 3: partial fills supported, only offerer or zone can executePARTIAL_RESTRICTED,// 4: contract order typeCONTRACT}enum BasicOrderType {// 0: no partial fills, anyone can executeETH_TO_ERC721_FULL_OPEN,// 1: partial fills supported, anyone can executeETH_TO_ERC721_PARTIAL_OPEN,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;type CalldataPointer is uint256;type ReturndataPointer is uint256;type MemoryPointer is uint256;using CalldataPointerLib for CalldataPointer global;using MemoryPointerLib for MemoryPointer global;using ReturndataPointerLib for ReturndataPointer global;using CalldataReaders for CalldataPointer global;using ReturndataReaders for ReturndataPointer global;using MemoryReaders for MemoryPointer global;using MemoryWriters for MemoryPointer global;CalldataPointer constant CalldataStart = CalldataPointer.wrap(0x04);MemoryPointer constant FreeMemoryPPtr = MemoryPointer.wrap(0x40);uint256 constant IdentityPrecompileAddress = 0x4;uint256 constant OffsetOrLengthMask = 0xffffffff;uint256 constant _OneWord = 0x20;uint256 constant _FreeMemoryPointerSlot = 0x40;/// @dev Allocates `size` bytes in memory by increasing the free memory pointer
1234567891011121314151617181920212223// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.7;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)pragma solidity ^0.8.19;/*** @dev Collection of functions related to the address type*/library AddressUpgradeable {/*** @dev Replacement for Solidity's `transfer`: sends `amount` wei to* `recipient`, forwarding all available gas and reverting on errors.** https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost* of certain opcodes, possibly making contracts go over the 2300 gas limit* imposed by `transfer`, making them unable to receive funds via* `transfer`. {sendValue} removes this limitation.** https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].** IMPORTANT: because control is transferred to `recipient`, care must be* taken to not create reentrancy vulnerabilities. Consider using* {ReentrancyGuard} or the* https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactionspattern].*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import { AllowListData, CreatorPayout } from "./SeaDropStructs.sol";/*** @notice A struct defining public drop data.* Designed to fit efficiently in two storage slots.** @param startPrice The start price per token. (Up to 1.2m* of native token, e.g. ETH, MATIC)* @param endPrice The end price per token. If this differs* from startPrice, the current price will* be calculated based on the current time.* @param startTime The start time, ensure this is not zero.* @param endTime The end time, ensure this is not zero.* @param paymentToken The payment token address. Null for* native token.* @param maxTotalMintableByWallet Maximum total number of mints a user is* allowed. (The limit for this field is* 2^16 - 1)* @param feeBps Fee out of 10_000 basis points to be* collected.* @param restrictFeeRecipients If false, allow any fee recipient;* if true, check fee recipient is allowed.*/
1234567891011121314151617181920212223242526{"remappings": ["forge-std/=lib/forge-std/src/","ds-test/=lib/forge-std/lib/ds-test/src/","ERC721A/=lib/ERC721A/contracts/","ERC721A-Upgradeable/=lib/ERC721A-Upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin-upgradeable/contracts/=lib/openzeppelin-contracts-upgradeable/contracts/","@rari-capital/solmate/=lib/seaport/lib/solmate/","murky/=lib/murky/src/","create2-scripts/=lib/create2-helpers/script/","seadrop/=src/","seaport-sol/=lib/seaport/lib/seaport-sol/","seaport-types/=lib/seaport/lib/seaport-types/","seaport-core/=lib/seaport/lib/seaport-core/","seaport-test-utils/=lib/seaport/test/foundry/utils/","solady/=lib/solady/"],"optimizer": {"enabled": true,"runs": 100000},"metadata": {"useLiteralContent": false,"bytecodeHash": "none","appendCBOR": true
Contract ABI
API[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"AllowedSeaportCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"ArrayLengthsMismatch","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"}],"name":"CannotExceedMaxSupplyOfUint64","type":"error"},{"inputs":[],"name":"CreatorPayoutAddressCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"CreatorPayoutBasisPointsCannotBeZero","type":"error"},{"inputs":[],"name":"CreatorPayoutsNotSet","type":"error"},{"inputs":[],"name":"DuplicateFeeRecipient","type":"error"},{"inputs":[],"name":"DuplicatePayer","type":"error"},{"inputs":[],"name":"DuplicateSigner","type":"error"},{"inputs":[],"name":"FeeRecipientCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"got","type":"address"}],"name":"FeeRecipientNotAllowed","type":"error"},{"inputs":[],"name":"FeeRecipientNotPresent","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"InvalidCallerOnlyAllowedSeaport","type":"error"},{"inputs":[{"internalType":"uint256","name":"totalReceivedBasisPoints","type":"uint256"}],"name":"InvalidCreatorPayoutBasisPoints","type":"error"},{"inputs":[{"internalType":"uint256","name":"totalReceivedBasisPoints","type":"uint256"}],"name":"InvalidCreatorPayoutTotalBasisPoints","type":"error"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8"}],"name":"InvalidExtraDataEncoding","type":"error"},{"inputs":[{"internalType":"uint256","name":"feeBps","type":"uint256"}],"name":"InvalidFeeBps","type":"error"},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"internalType":"uint256","name":"toTokenId","type":"uint256"}],"name":"InvalidFromAndToTokenId","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"maximum","type":"uint256"}],"name":"InvalidSignedEndTime","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"minimumOrMaximum","type":"uint256"}],"name":"InvalidSignedFeeBps","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"InvalidSignedFromTokenId","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"maximum","type":"uint256"}],"name":"InvalidSignedMaxTokenSupplyForStage","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"maximum","type":"uint256"}],"name":"InvalidSignedMaxTotalMintableByWallet","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"maximum","type":"uint256"}],"name":"InvalidSignedMaxTotalMintableByWalletPerToken","type":"error"},{"inputs":[{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"InvalidSignedMintPrice","type":"error"},{"inputs":[{"internalType":"address","name":"got","type":"address"},{"internalType":"address","name":"want","type":"address"}],"name":"InvalidSignedPaymentToken","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"InvalidSignedStartTime","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"maximum","type":"uint256"}],"name":"InvalidSignedToTokenId","type":"error"},{"inputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"InvalidStartAndEndTime","type":"error"},{"inputs":[{"internalType":"uint8","name":"substandard","type":"uint8"}],"name":"InvalidSubstandard","type":"error"},{"inputs":[],"name":"MaxSupplyMismatch","type":"error"},{"inputs":[],"name":"MintAmountsMismatch","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"MintExceedsMaxSupply","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"allowed","type":"uint256"}],"name":"MintQuantityExceedsMaxMintedPerWallet","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"allowed","type":"uint256"}],"name":"MintQuantityExceedsMaxMintedPerWalletForTokenId","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"MintQuantityExceedsMaxSupply","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxTokenSupplyForStage","type":"uint256"}],"name":"MintQuantityExceedsMaxTokenSupplyForStage","type":"error"},{"inputs":[],"name":"MustSpecifyERC1155ConsiderationItemForSeaDropMint","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoBalanceToWithdraw","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"startTimestamp","type":"uint256"},{"internalType":"uint256","name":"endTimestamp","type":"uint256"}],"name":"NotActive","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"OfferContainsDuplicateTokenId","type":"error"},{"inputs":[],"name":"OnlyDelegateCalled","type":"error"},{"inputs":[],"name":"PayerCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"got","type":"address"}],"name":"PayerNotAllowed","type":"error"},{"inputs":[],"name":"PayerNotPresent","type":"error"},{"inputs":[],"name":"ProvenanceHashCannotBeSetAfterAlreadyBeingSet","type":"error"},{"inputs":[],"name":"ProvenanceHashCannotBeSetAfterMintStarted","type":"error"},{"inputs":[],"name":"PublicDropStageNotPresent","type":"error"},{"inputs":[],"name":"PublicDropsMismatch","type":"error"},{"inputs":[],"name":"RoyaltyOverflow","type":"error"},{"inputs":[],"name":"RoyaltyReceiverIsZeroAddress","type":"error"},{"inputs":[],"name":"SameTransferValidator","type":"error"},{"inputs":[],"name":"SignatureAlreadyUsed","type":"error"},{"inputs":[],"name":"SignedMintsMustRestrictFeeRecipients","type":"error"},{"inputs":[],"name":"SignerCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"SignerNotPresent","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"startTokenId","type":"uint256"},{"internalType":"uint256","name":"endTokenId","type":"uint256"}],"name":"TokenIdNotWithinDropStageRange","type":"error"},{"inputs":[],"name":"TransferToNonERC1155ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8"}],"name":"UnsupportedExtraDataVersion","type":"error"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"UnsupportedFunctionSelector","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"previousMerkleRoot","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"},{"indexed":false,"internalType":"string[]","name":"publicKeyURI","type":"string[]"},{"indexed":false,"internalType":"string","name":"allowListURI","type":"string"}],"name":"AllowListUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeRecipient","type":"address"},{"indexed":true,"internalType":"bool","name":"allowed","type":"bool"}],"name":"AllowedFeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"allowedSeaport","type":"address[]"}],"name":"AllowedSeaportUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"isApproved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newContractURI","type":"string"}],"name":"ContractURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"payoutAddress","type":"address"},{"internalType":"uint16","name":"basisPoints","type":"uint16"}],"indexed":false,"internalType":"struct CreatorPayout[]","name":"creatorPayouts","type":"tuple[]"}],"name":"CreatorPayoutsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newDropURI","type":"string"}],"name":"DropURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"MaxSupplyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"bool","name":"allowed","type":"bool"}],"name":"PayerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"previousHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newHash","type":"bytes32"}],"name":"ProvenanceHashUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint80","name":"startPrice","type":"uint80"},{"internalType":"uint80","name":"endPrice","type":"uint80"},{"internalType":"uint40","name":"startTime","type":"uint40"},{"internalType":"uint40","name":"endTime","type":"uint40"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint24","name":"fromTokenId","type":"uint24"},{"internalType":"uint24","name":"toTokenId","type":"uint24"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint16","name":"maxTotalMintableByWalletPerToken","type":"uint16"},{"internalType":"uint16","name":"feeBps","type":"uint16"}],"indexed":false,"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"PublicDropUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"basisPoints","type":"uint256"}],"name":"RoyaltyInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"uint256","name":"dropStageIndex","type":"uint256"}],"name":"SeaDropMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum SeaDropErrorsAndEvents.SEADROP_TOKEN_TYPE","name":"tokenType","type":"uint8"}],"name":"SeaDropTokenDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"bool","name":"allowed","type":"bool"}],"name":"SignerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldValidator","type":"address"},{"indexed":false,"internalType":"address","name":"newValidator","type":"address"}],"name":"TransferValidatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"internalType":"uint256","name":"toTokenId","type":"uint256"}],"name":"emitBatchMetadataUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTransferValidationFunction","outputs":[{"internalType":"bytes4","name":"functionSignature","type":"bytes4"},{"internalType":"bool","name":"isViewFunction","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTransferValidator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"allowedConfigurer","type":"address"},{"internalType":"address","name":"allowedSeaport","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"initialOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownershipHandoverValidFor","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provenanceHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newContractURI","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"feeNumerator","type":"uint96"}],"name":"setDefaultRoyalty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newProvenanceHash","type":"bytes32"}],"name":"setProvenanceHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newValidator","type":"address"}],"name":"setTransferValidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.