Most team members are seasoned developers with 4-10 years of experience, but none of us are professionals in blockchain technologies...yet! Few of us have already had the chance to do some NFT projects, but none of them were complex, something that involves Oracles. This Hackathon allowed us to learn something new to improve our experience and portfolio. Oh, and we all love traveling!
What it does
When travelers visit a city, they usually buy something that makes them remember that place. If that person loves crypto and NFTs, what'd be a better souvenir than minting an NFT of that city? To make those NFTs even more unique and sensible, those can be bought if you are in that particular city.
How we built it
We implemented an ERC-721 NFT contract that has lazy minting capabilities. When travelers visit a city, they open our minting website with location services enabled. They sign their location with their wallet and then fetch the nearest mintable NFTs using our backend API. Our web server will verify the digital signature and store their coordinates for further verification. When the user purchases the available NFT, the contract will use an Oracle to verify the user's location; it'll call one of our APIs to check if the user was in the given location. The NFT will land in the user's wallet if everything is valid.
Challenges we ran into
Using Oracle was a completely new journey for us. We spent several hours making it work locally, then making everything work after deployment.
Accomplishments that we're proud of
Definitely the team morale. All 5 of us managed to get together for multiple nights after our usual workday and jump into the development. We didn't implement the most innovative NFT project in the world, but I'm sure we became one of the best teams for this and future ones.
What we learned
- Part of the team made their first Solidity/EVM smart contract.
- Oracles were new to everyone.
What's next for CryptoSouvenirs
- We have already started to contact bloggers and other authors with any publications about famous places. We'd love to partner up and use their favorite places as our mintable location collection.
- We want to partner up with an artist who can do a better job with the artwork than I did...
- Improve the smart contract, like adding royalties, having a team audit it, etc.