Request form
Manifold.xyz
  • NFT
  • Protocol
Docs
Source
ChefGPT

Manifold empowers digital creators with tools and applications enabling true creative sovereignty and the ability to create innovative NFT experiences for their audiences.

AdminControl.sol
AdminControlUpgradeable.sol
IAdminControl.sol
OwnableUpgradeable.sol
Initializable.sol
AddressUpgradeable.sol
ContextUpgradeable.sol
Ownable.sol
ReentrancyGuard.sol
IERC1155.sol
IERC1155Receiver.sol
IERC1155MetadataURI.sol
IERC721.sol
IERC721Receiver.sol
IERC721Enumerable.sol
IERC721Metadata.sol
Address.sol
Context.sol
Strings.sol
ERC165.sol
ERC165Checker.sol
IERC165.sol
Math.sol
SignedMath.sol
EnumerableSet.sol
ERC1155Creator.sol
ERC1155CreatorImplementation.sol
ERC1155CreatorUpgradeable.sol
ERC721Creator.sol
ERC721CreatorEnumerable.sol
ERC721CreatorImplementation.sol
ERC721CreatorUpgradeable.sol
CreatorCore.sol
ERC1155CreatorCore.sol
ERC721CreatorCore.sol
ERC721CreatorCoreEnumerable.sol
ICreatorCore.sol
IERC1155CreatorCore.sol
IERC721CreatorCore.sol
IERC721CreatorCoreEnumerable.sol
IRoyalties.sol
CreatorExtension.sol
CreatorExtensionBasic.sol
CreatorExtensionRoyalties.sol
ERC1155CreatorExtensionApproveTransfer.sol
ERC1155CreatorExtensionBurnable.sol
IERC1155CreatorExtensionApproveTransfer.sol
IERC1155CreatorExtensionBurnable.sol
ERC721CreatorExtension.sol
ERC721CreatorExtensionApproveTransfer.sol
ERC721CreatorExtensionBurnable.sol
IERC721CreatorExtensionApproveTransfer.sol
IERC721CreatorExtensionBurnable.sol
ICreatorExtensionBasic.sol
ICreatorExtensionRoyalties.sol
ICreatorExtensionTokenURI.sol
ERC1155CreatorMintPermissions.sol
IERC1155CreatorMintPermissions.sol
ERC721CreatorMintPermissions.sol
IERC721CreatorMintPermissions.sol
ERC1155Base.sol
ERC1155Core.sol
ERC1155Upgradeable.sol
ERC721Base.sol
ERC721Core.sol
ERC721Enumerable.sol
ERC721Upgradeable.sol

150 downloads

Chains

Authors

Manifold.xyz
  • NFT
  • Protocol
Info
Source
ChefGPT
Expand
Share

Get Cookin'

150 downloads

Chains

Authors

manifoldxyz-creator-core-solidity

The Manifold Creator Core Contracts

A library for extendible creator contracts.

  • Implementation for ERC721
  • Implementation for ERC1155

The Manifold Creator Core contracts provide creators with the ability to deploy an ERC721/ERC1155 NFT smart contract with basic minting functionality, on-chain royalties and permissioning. Additionally, they provide a framework for extending the functionality of the smart contract by installing extension applications.

These contracts are used in the Manifold Studio.

This enables creators to use the same underlying Manifold Creator Core contract to continue creating new and innovative NFT's and experiences.

See our developer documentation and blog post for more information.

Go here for example applications that have been added to Manifold Creator Core contracts.

Overview

Installation

$ npm install @manifoldxyz/creator-core-solidity

Usage

Once installed, you can use the contracts in the library by importing them:

pragma solidity ^0.8.0;

import "@manifoldxyz/creator-core-solidity/contracts/ERC721Creator.sol";

contract MyContract is ERC721Creator  {
    constructor() ERC721Creator ("MyContract", "MC") {
    }
}

The available contracts are:

  • ERC721Creator
  • ERC721CreatorUpgradeable - A transparent proxy upgradeable version of ERC721Creator
  • ERC721CreatorEnumerable - Note that using enumerable significantly increase mint costs by around 2x
  • ERC1155Creator

Manifold Studio currently makes use of ERC721Creator and ERC1155Creator

Extension Applications

The most powerful aspect of Manifold Creator Core contracts is the ability to extend the functionality of your smart contract by adding new Extension Applications (Apps). Apps have the ability to override the following functionality for any token created by that App:

ERC721

  • mint
  • tokenURI
  • transferFrom/safeTransferFrom pre-transfer check
  • burn pre-burn check
  • define royalties for extension minted tokens

ERC1155

  • mint
  • uri
  • safeTransferFrom pre-transfer check
  • burn pre-burn check
  • define royalties for extension minted tokens

In order to create an app, you'll need to implement one or more interfaces within contracts/extensions, deploy the new app and register it to the main Creator Core contract using the registerExtension function (which is only accessible to the contract owner or admins).

Example applications can be found here.

Running the package unit tests

forge test
Manifold empowers digital creators with tools and applications enabling true creative sovereignty and the ability to create innovative NFT experiences for their audiences.
AdminControl.sol
AdminControlUpgradeable.sol
IAdminControl.sol
OwnableUpgradeable.sol
Initializable.sol
AddressUpgradeable.sol
ContextUpgradeable.sol
Ownable.sol
ReentrancyGuard.sol
IERC1155.sol
IERC1155Receiver.sol
IERC1155MetadataURI.sol
IERC721.sol
IERC721Receiver.sol
IERC721Enumerable.sol
IERC721Metadata.sol
Address.sol
Context.sol
Strings.sol
ERC165.sol
ERC165Checker.sol
IERC165.sol
Math.sol
SignedMath.sol
EnumerableSet.sol
ERC1155Creator.sol
ERC1155CreatorImplementation.sol
ERC1155CreatorUpgradeable.sol
ERC721Creator.sol
ERC721CreatorEnumerable.sol
ERC721CreatorImplementation.sol
ERC721CreatorUpgradeable.sol
CreatorCore.sol
ERC1155CreatorCore.sol
ERC721CreatorCore.sol
ERC721CreatorCoreEnumerable.sol
ICreatorCore.sol
IERC1155CreatorCore.sol
IERC721CreatorCore.sol
IERC721CreatorCoreEnumerable.sol
IRoyalties.sol
CreatorExtension.sol
CreatorExtensionBasic.sol
CreatorExtensionRoyalties.sol
ERC1155CreatorExtensionApproveTransfer.sol
ERC1155CreatorExtensionBurnable.sol
IERC1155CreatorExtensionApproveTransfer.sol
IERC1155CreatorExtensionBurnable.sol
ERC721CreatorExtension.sol
ERC721CreatorExtensionApproveTransfer.sol
ERC721CreatorExtensionBurnable.sol
IERC721CreatorExtensionApproveTransfer.sol
IERC721CreatorExtensionBurnable.sol
ICreatorExtensionBasic.sol
ICreatorExtensionRoyalties.sol
ICreatorExtensionTokenURI.sol
ERC1155CreatorMintPermissions.sol
IERC1155CreatorMintPermissions.sol
ERC721CreatorMintPermissions.sol
IERC721CreatorMintPermissions.sol
ERC1155Base.sol
ERC1155Core.sol
ERC1155Upgradeable.sol
ERC721Base.sol
ERC721Core.sol
ERC721Enumerable.sol
ERC721Upgradeable.sol