Creating a Contract
All 1155 contracts created from Freee are deployed by calling a central factory contract.
Last updated
All 1155 contracts created from Freee are deployed by calling a central factory contract.
Last updated
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 .
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 metadata
name
: The name of the contract
defaultRoyaltyConfiguration
: The default royalty configuration for the contract
defaultAdmin
: The default admin for the contract
setupActions
: 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.
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 recipient
royaltyBPS
: The royalty amount in basis points for secondary sales.
royaltyRecipient
: The address that will receive the royalty payments.
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.
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