Planets
Confirmed Planets Contract
Documentation: https://skinetics.notion.site/Sample-Planets-Contract-4c3bdcbca4b9450382f9cc4e72e081f7
- User mints an anomaly that has appeared in their UI (for now, the webapp, later it will be the game as well)
- API searches for a token that has already been lazy minted with the TIC id of the anomaly (or the identifier of the candidate)
- If there is a token id that has the TIC Id, then claim a copy of that to the
msg.sender (player’s address) so they can manipulate it in-game
- If the TIC ID has never been minted before, lazy mint a new one with parameters fetched from the data source and send it to
msg.sender
- Return the IPFS metadata
- Add some buttons that allow manipulations for the NFT (e.g. viewing (reading) metadata (e.g. image/video files, graphs).
- Graphs should be generated in a Jupyter notebook and returned in the Next app.
- User creates post (proposal Proposal Board → Migration from Vite) with the NFT ID for their anomaly and some extra metadata for their discoveries and proposal, and then users can vote
Planet/Node candidates
(Where node refers to any type/class/collection of object that is part of the classification process. E.g. the TESS planets collection, mining/seismic data collection, etc)
Simple flow: Contract for unconfirmed planet → created via Deepnote flask
Once confirmed → lazy mint on existing goerli contract
Mining multitool helper
PlanetContractAddress
Address for the collection of planets/node candidates that have been confirmed and lazy-minted.
The process for this in the Star Sailors wrapper is as follows:
- Player mints an anomaly, which is an ERC1155 drop that is lazy-minted. The player requests a new planet, a random TIC id is assigned, our Flask API on Deepnote searches for an NFT in the first drop with that TIC ID. If none is found, a new NFT is lazy minted on that collection with data from the Lightkurve python module.
- User/Player then has a candidate (unconfirmed node object) in their wallet and on the web application frontend, they're redirected to a special planet
{...id} page where they can interact with and view the candidate.
- Once the user has made a decision as to the status of the node candidate, they then create a Proposal (first on the threaded comments via Supabase and then on Lens). The contents of this proposal are outlined here.
- An NFT of this proposal is minted and then a new NFT is lazy minted from this collection (**note -> this is a demo. Will be updated). This new lazy-minted NFT will contain a link to the candidate node the proposal was created from, the proposal, and all the traits the user has filled in for the node once they have been cross-referenced with the proposal, voters and the python module that has the dataset (in this case, Lightkurve on Deepnote). This collection is the one referenced to in this contract (
planetNftCollectionAddress). This planet can then have actions performed on it and rewards/items generated via the minerals contract.