Creating a Contract
All 1155 contracts created from Freee are deployed by calling a central factory contract.
When calling this factory it will deploy a minimal proxy contract that is upgradeable. All upgrades are opt-in and must be done manually on a per contract basis by the user.
View the list of deployed contract addresses here.
Calling the Factory Contract
The createContract
function on the factory is responsible for deploying a new 1155 contract.
The setupActions
parameter allows for multiple actions to be called when deploying the contract.
Such as creating a token and sale in the same transaction as deploying the contract.
contractURI
: The URI for the contract metadataname
: The name of the contractdefaultRoyaltyConfiguration
: The default royalty configuration for the contractdefaultAdmin
: The default admin for the contractsetupActions
: The actions to perform on the new contract upon initialization (optional)
The contract supports multicall so multiple functions can be called to set up the contract in a single transaction.
Royalty Configuration
The defaultRoyaltyConfiguration
sets contract-wide royalties.
Note, that royalties can also be set at the token level.
The parameter can be passed in with the following details:
royaltyMintSchedule
: 1/N tokens are minted to the royalty recipientroyaltyBPS
: The royalty amount in basis points for secondary sales.royaltyRecipient
: The address that will receive the royalty payments.
Contract URI
The Contract URI contains contract specific details. This metadata is stored in a JSON file on IPFS.
The uri is retrieved via the contractURI()
call on the contract.
Setup Actions
An optional param that is encoded function data that can be passed in and can call a separate function within the contract. This allows creating a token and setting permissions in the same transaction of creating the contract. Actions that can be called:
Creating a token
Setting the salesConfig
Granting permissions/minter role
Admin minting tokens
Last updated