Inspiration
Chainlink, of course :)
What it does
It's an on-chain magic 8-ball. Just a fun little project to learn about Chainlink and VRF. User asks a question to the Magic Oracle, and the Oracle uses Chainlink VRF to respond with an answer. Users can then choose to save the result as a fully on-chain SVG NFT.
How we built it
Solidity/Javascript/React/Ethersjs
Challenges we ran into
- Max contract size limit was reached due to SVG NFTs, had to break the contract into multiple pieces. Learned a lot about solidity interfaces and working with multiple contracts.
- Something's going on with ethersjs and Arbitrum events. Ethersjs v5 just wouldn't return any results when listening to events on arbitrum, and v6 was giving me errors when trying to filter by long integers (VRF request IDs) or their string equivalents. Just ended up having to check for on-chain state changes manually.
Accomplishments that we're proud of
First time using Chainlink!
What we learned
Learned a lot about how Chainlink works, ERC721, and finally made the switch from web3.js to ethers.js.
What's next for magicoracle.link
Deploying to Arbitrum mainnet.
Built With
- ethers
- javascript
- react
- solidity


Log in or sign up for Devpost to join the conversation.