Inspiration

Astrology and the intricate cosmic patterns that emerge from tracking planetary movements have always held a certain allure for me. With the advent and growth of astrological software over the years, I was inspired to weave this celestial data into the fabric of web3, giving birth to a unique generative NFT art project that captures snapshots of the cosmos.

What it does

I’ve crafted a Python script that superimposes avatar images with depictions of the current positions of celestial bodies such as the Sun, Moon, and planets. Each avatar component corresponds to a specific celestial body, selected based on its astrological importance. Moreover, the color of each avatar part represents the astrological sign that the celestial objects occupy at a specific moment.

By leveraging Chainlink functions, I’ve been able to invoke my APIs to fetch celestial positioning data and generate dynamic image metadata for ERC721 NFTs. The script retrieves real-time positional data, creating unique, astrology-encoded generative art. This art and planetary data is then brought on-chain, resulting in a seamless blend of the cosmic and the digital. The ERC721 contract was deployed on Avalanche Fuji Testnet because of Avalanche's fast transaction processing, it is secure and affordable, and because it is interoperable with Ethereum.

How we built it

Despite being a novice in Python, web development, Chainlink, and NFT smart contract deployment, I embraced the challenge, learning and growing with each step. I built it by first crafting a python script that uses a ephemeris library in order to get the planetary positions and performs the calculations necessary to compute the astrological signs of the planetary objects. I then created 2 APIs which fetch the astrological planetary position and astrological sign for each celestial object, or body part in the composed avatar. I had to then figure out how to deploy a public server and host my project so that the APIs could be publicly accessed. I settled with AWS, and had success in deploying the APIs publicly. The next step was creating the smart contract and interacting with the chainlink function to make a https request, in order to GET the planetary data and image, which was then converted to Base64 bytecode to insert as the NFT metadata. I then had to modify my front-end code so that people could connect their wallets and mint the NFTs.

Challenges we ran into

This project presented a series of challenges at every turn. From ensuring the Python script accurately determined the current astrological signs of celestial bodies, to realizing the necessity of deploying my APIs publicly for interaction via the Chainlink function request, to grappling with getting my smart contract to function as intended - each step was a hurdle.

Despite these challenges, the journey of bringing this project to fruition was a testament to resilience and the power of continuous learning. Each obstacle encountered was not a setback, but an opportunity for growth and improvement of my development skills.

Accomplishments that we're proud of

The completion of this project is an achievement I take immense pride in. The journey from creating my own APIs to developing a full-stack project with web3 integrations has been nothing short of remarkable. This accomplishment, especially considering my initial lack of development experience beyond following Patrick Collin’s tutorial videos, is something I am incredibly proud of.

Seeing the composed avatar change in sync with the planets moving through different astrological signs was a joyous moment, a testament to the success of my code. This project has been a journey of learning, growth, and accomplishment, and I am thrilled to have navigated its challenges successfully.

What we learned

This project has been a treasure trove of learning experiences. I gained a fundamental understanding of deploying a full-stack project, and discovered that many elements that function flawlessly during local testing may encounter issues upon public deployment.

I delved deeper into the world of smart contracts than I ever anticipated, gaining a wealth of knowledge in the process. Most importantly, I learned that it is indeed possible to bring real-world data on-chain, thanks to the capabilities of Chainlink.

This journey has not only equipped me with valuable technical skills but also taught me the importance of adaptability and problem-solving in the face of unexpected challenges.

What's next for Celestial.Mint

While the completion of a functioning prototype has been rewarding, it is merely the beginning of an exciting journey. First, I will ensure the mint function on the website works as intended and that NFTs are minted with the correct metadata. Then, I plan to enhance the user experience by allowing them to input a date of their choice. This will enable them to generate avatar combinations that represent not just the current celestial configuration, but any moment in time they wish to capture.

In addition, I aim to integrate an LLM chatbot into the site to assist users with any queries related to astrology and web3. This feature, however, will be exclusive to wallets that hold a Celestial avatar.

These planned enhancements are a testament to the ongoing evolution of Celestial.Mint, as it continues to bridge the gap between the cosmic and the digital.

Share this project:

Updates