- Anchor
- If testing locally: either (a) js dev env or (b) docker. (see "Getting Started" for instructions)
Option 1. Locally: yarn && yarn dev
Option 2. Docker: docker-compose up --build --force-recreate
Open http://localhost:3000 in a web browser to access the app.
Option 3. Public dev instance
Home page: show featured collections, “about” section, and login link.
Navigating to the app, you will see a list of collections with "about section" near the bottom, and login functionality in the header.
When logged in, (a) show account, (b) RAM usage, (c) log out link, and (d) list of user's collections
Proceed to login. The app will ask you to launch Anchor to authenticate. Once you do so, you will notice that your account name is in the header. Clicking it will show your current RAM usage, as well as a link to log out. If you have logged in with an account which has already published collections, you will be seeing them now as well.
Ability to explore/examine Collections, Schemas, Templates, NFTs.
By clicking on a collection image, you will see collection attributes such as Author, URL, creation date, and stats. You are also able to view Templates, NFTs (assets), schemas, and a list of holder accounts.
Note that many published collections may not have any published shemas or templates. To see one example collection which has a lot of data to demo, you may visit https://creator.facings.io/eos/collection/cutiecatsand (no affiliation).
(1) Create/Edit Collections
- Ensure you are logged in and navigate to "My Collections".
- Click on "Create Collection", select an image and fill out the fields, and submit the form
- You should now see the collection overview.
(2) Create/Extend Schemas
- From the collection overview page, click on the "Schemas" tab and then "Create Schema"
- You will notice that a few default attributes are listed. If you wish to add more, enter a new attribute name, select the value type, and click "Add attribute". Repeat as needed
- Upon clicking "Create schema", you will be prompted to sign a transaction. Upon broadcast the app will display the newly-created schema.
(3) Create Templates
- From the collection overview page, click on the "Templates" tab and then "Create your first template"
- You will find the schema created in the previous steps will be selected by default. You may also edit a few internal attributes: ability to transfer (default: on), ability to burn (default: on), and max supply (default: unlimited).
- Fill out the remaining attributes for the chosen schema and press "Create template"
(4) Create NFTs
- From the collection overview page, click on "NFTs" tab and then "Create NFT"
- Select the schema and template to create the NFT from. All other fields are optional, and by default one copy will be created.
- Click "Create NFT"
(5) Airdrop NFTs
- From the top navigation bar, click on "Transfer"
- You will see a list of all NFTs available to transfer. Click on the items to toggle their inclusion in the transfer.
- Enter a recipient account name, and optionally a memo
- Click "Transfer" to sign and broadcast the transaction.
Lock template
- Navigate to the template for which you would like to lock supply. Note that its current supply must be greater than zero.
- Click "Edit Template"
- Click "Lock template" and execute the transaction.
Burn NFT
- Navigate to the NFT you would like to burn.
- Click on "Edit NFT", then "Burn NFT" tab.
- Click on the "Burn NFT" button to sign and broadcast the transaction.
Two ways of verifying TypeScript migration:
- Visit https://github.com/FACINGS/collection-manager - on the right-hand panel, you will see "Languages - TypeScript - 98.9%"
- In the CLI:
- Run
find src/** -type f | wc -l
to count all source code files (104
). - Run
find src/** -type f | grep '.ts' | wc -l
to count all TypeScript files (104
) - Run
yarn lint
to findNo ESLint warnings or errors
- Run
- Jungle4 EOS testnet support
- On the main page of the app, when logged out, you will be able to select Jungle4 in the upper-left select menu.
- Airdrop - allow minting to multiple accounts
- When minting from a template, you are now able to select multiple recipients and specify number of copies to mint for each.
- Transfers - filter NFTs by name or collection
- On the Transfer page, there is a dropdown to filter by collection, as well as a text input to filter by NFT name.
- Upgrade navigation / breadcrumbs and small screen optimization
- All pages in the collection manager UI now have breadcrumb navigation to easily navigate the object hierarchy.
- On small screens, the navigation bar items will collapse into a dropdown menu.
- IPFS updates - manual address entry, previews, validation, view originals
- When entering fields on new Templates or NFTs, you may specify an IPFS hash.
- Enhanced previews on IPFS fields.
- Automatic validation of uploaded media via browser-supplied content MIME type.
- Ability to click an IPFS hash when viewing Templates/NFTs to view the original media.
- Metadata handling
- new social links for collection on the Create Collection and Edit Collection pages
- better defaults for schema: friendlier handling of
img
andvideo
fields on the create schema page - allow blank immutable fields: when creating templates, there is a toggle switch allowing the user to specify that a blank value should be added as immutable (as opposed to left out of the template definition)
- improved input validations: collection and schema name fields now follow precise rules of EOS account names
Documentation of the plugin system and instructions on how to install a sample plugin from GitHub or create a plugin from scratch are found here:
https://github.com/FACINGS/collection-manager/blob/main/docs/plugins.md
Development of an AtomicAssets CSV standard
You may view the documentation of the standard here: Data Import Plugin.
Ability to import a CSV to create a schema and templates
- Download sample file: fruits.csv
- Browse to a collection you have created
- Click "Plugins" in the navigation bar, then "Import"
- Select the
fruits.csv
file from step 1 - You will see a data review showing 1 schema and 4 templates to be created with no errors detected.
Minimal data validation to help detect user errors
- Download sample file: fruits.fail.csv
- Start on the "Import" page (Collection > Plugins > Import)
- Select the
fruits.fail.csv
file you downloaded in step 1 - You will see two errors detected:
- The
img
field for "Apple" is invalid (value is123
when an IPFS address was expected) - The
points
field for "Banana" is invalid (value isabc
when a integer was expected)
- The
Ability to submit transactions in batches
- Download sample file: batch.test.csv
- Start on the "Import" page (Collection > Plugins > Import)
- Select the
batch.test.csv
file you downloaded in step 1 - You will see a notice notifying you that the process will be split into multiple transactions, and you will be able to adjust the batch size from the default of 25, if desired.
- Submitting the form will result in the user being prompted to sign a series of transactions.
Data validation heuristics upon import: (a) Uniqueness; (b) Completeness; (c) Datatype optimization
- Download sample file: validationtest.csv
- Start on the "Import" page (Collection > Plugins > Import)
- Select the
validationtest.csv
file you downloaded in step 1 - You will see the following notices and errors:
- Datatype optimization notice: the attribute
rating
is auint64
but since all values are in a smaller range we suggest you useuint8
instead - Uniqueness error: "Apple" and "Banana" have a repeated value for the
img
field - Required field error: "Kiwi" is missing a value for the
points
field, which was marked as 'required' - IPFS field validation error: "Orange" has an invalid entry for the
img
field, which expects an IPFS address
- Datatype optimization notice: the attribute
- Specify single & multiple recipients
- Specify drop assets by (a) minting a specific Template ID; or (b) transfer multiple Asset IDs
- Randomize recipients (i.e. mint numbers) using random.org
- Batch submits
- Select desired chain and Connect your wallet
- In the header nav, click "Plugins", then "Airdrop"
- On this page you will see the core features:
- "Accounts to Airdrop" allows any number of recipients to be specified
- The dice button to the right-hand side of the "Accounts to Airdrop" label randomizes the list using a seed generated by random.org.
- The "How do you want to airdrop" selection offers two options:
- Mint NFTs from template - specify a template id; submission will mint to the specified accounts.
- Transfer from NFT IDs - specify (or query) a list of NFT (asset) IDs; submission transfers to the specified accounts.
- Batch Size - at the bottom of the form, the user has control over batch size. This can be verified by inspecting the generated transactions.
Look-up Queries:
- everyone who has specific template
- everyone who doesn’t have specific templates within a collection
- everyone who has any item from a collection
Unique Queries:
- option to send single or multiple assets to matched accounts
- From the Airdrop page, these account queries are visible at the very top
- The "Include Accounts" dropdown offers the 3 query types above, as promised.
- The "Unique accounts only" toggle controls how multiple matches are handled; for example:
- Searching for a template with the toggle OFF will result in accounts holding multiple copies to be returned multiple times. This could be used for contests where participants can have multiple chances to win.
- Searching for multiple templates with the toggle ON will return a list of accounts who hold at least 1 of the specified templates, with no duplicates.