Making a List, Checking it Twice!

Brooks Boyd
MoonCatRescue
Published in
5 min readJun 11, 2024

--

The ChainStation web application gives all users the ability to create custom lists of tokens and publish them for other users to browse beginning June 4th 2024. Despite being a common community request, that can seem like a fairly blah feature; why would someone want to do this? All portfolio applications give a list of all assets in your wallet, but sometimes you want to make subsets of your owned assets (a “featured” or “highlighted” set), or assets you don’t own (a list of “favorites” or “wishlist” items). This feature is the base building block for all those options, and ChainStation will be continuing to expand upon them.

Currently MoonCats are the only type of token that can be added to a custom list via the ChainStation web interface, but that shall expand in the future to include other types of tokens too, including the upcoming lootprints conversion. The standard the custom lists are built-upon isn’t limited to only ERC721 tokens, but can be any token type with unique IDs, so the ChainStation interface can grow in the future to include many other collections too.

Create a List

To create a list, all that is required is at least one token and a name. Because creating a list is editing data, you will need to be signed in to ChainStation to do this. The ChainStation application differentiates between “having a connected wallet” and “being signed in” for security purposes (more details on that in this blog post).

So, first ensure you’re signed-in by heading to the My Profile page and following any prompts you get until you see a message like “You are known and verified on this site as…”

Now go browse and find a MoonCat you’d like to make yours one day. In the top-right of the MoonCat’s info box, you’ll find a button with a “bookmark” icon.

Click it and you’ll get a popup asking you which list you’d like to save this MoonCat to. You’ll have “Wishlist” available automatically, so give that a click!

Your wallet will then prompt you to sign an Attestation that it really is you making this request to add the MoonCat to your Wishlist.

You can verify the information really is what it says it is by verifying against this metadata:

The “Schema” should be the “Token List” schema on Arbitrum: 0x58de78ba175d13cb1699fdbc6c25a80ba2b21a943b5aac252ec367c878808d09

The “Recipient” should be the MoonCatTraits contract on Arbitrum: 0xf00e9cF6a96dFAd869f676022F49761632A3aA2C

For more information on what “an attestation” is, and why this technology is being used for this ChainStation feature, you might find this blog post helpful. Note that the signature that’s being asked for is not for a blockchain transaction (it’s “signing a message” not “signing a transaction”) so there is no gas cost to do this action. The attestation message is stored off-chain by the MoonCatRescue Data API server.

If those values check out, give it a sign, and you’ll now have that MoonCat in your Wishlist!

Browse Lists

Let’s go browse your Wishlist to see what it now looks like to the other Etherians out there: click your wallet address in the left sidebar to go to your own “Owner Profile” public page.

Click the “Lists” tab, and then “Wishlist”. You should then see that lovely MoonCat looking back at you! The URL of that page is a permalink to your Wishlist listing; feel free to share it around and others will be able to see your dream litter (who knows; someone might gift one to you!). 😻

Edit Lists

Did you accidentally add the wrong MoonCat to a list? Don’t worry, it’s possible to remove a MoonCat from a list: head over to the “My Profile” page and click the Lists tab. From there, click on the list name you wish to edit.

The list will then show each token in the list with a “trash can” button in the corner of each. Click the “trash” icon to remove that MoonCat from that list. Your wallet will pop up a confirmation for a transaction on the Arbitrum blockchain.

Revoking is an on-chain action, so this does cost a small amount of ETH on the Arbitrum blockchain to finalize.

The transaction should be an interaction with the Ethereum Attestation Service controller on Arbitrum (0xbD75f629A22Dc1ceD33dDA0b68c546A1c035c458), triggering the “Revoke Offchain” method.

Once you approve that transaction and it finalizes, the list view will refresh and that MoonCat shall be removed from the list.

Bulk adding and removing

If you have a bunch of MoonCats to add to a list at once, that can be done with less Attestations to sign, but do be aware that if you add MoonCats to a list in a bulk set, if you choose to remove them from the list it will remove the whole set as a unit. The team will be refining this process in the future, and you can move up how quickly this is worked on by upvoting this GitLab feature request.

If you know the IDs of the MoonCats you wish to add to a list, go to the “My Profile” page, visit the “Lists” tab, and use the form that’s there to paste in a list of identifiers to add all at once.

If you browse the main MoonCats listing page, and find a search filter of MoonCats you like and want to add all of them to a list, you’ll find a bookmark icon in the top-right of the search result listing, which will add all the MoonCats on the search results page you’re currently viewing to a list of your choosing.

Open Standard

Other web applications are encouraged to use this structure and data too. The structure being used is documented in ADR0010. Data created by ChainStation visitors are offchain signatures in the Ethereum Attestation Service structure, and can be queried off the MoonCatRescue Data API server.

--

--

Brooks Boyd
MoonCatRescue

Teaching computers / to make art with just some code. / It is what I do.