Full-Stack StarkNet
Repo containing the code for a short tutorial series I wrote while diving into StarkNet and learning Cairo. Aims to onramp existing devs to a little bit of everything.
NOTE: Since this space moves so quickly, a lot of the libraries used are shifting underneath this tutorial.
If you see something that isn’t working, you are probably using the newest version of a contract or library. Tweaks are likely necessary! Play around and debug, and feel free to submit a PR to help the next dev! :)
Creating a black box for cars, enabling immutable diagnostics.
Tutorial text kept on hackmd for easier editing:
- [Part 1]
🚧 Getting Started in Cairo & Deploying with Nile- write a unit tested contract in cairo
- deploy your contract to testnet
- [Part 2]
🐍 Contract Interaction with starknet.py- create and sign StarkNet transactions from a python application
- [Part 3]
👥 StarkNet Account Abstraction & Using Standard Contracts- learn the difference between Ethereum & StarkNet Account models
- refactor your contract & tests to use standard OpenZeppelin Accounts
- [Part 4]
💽 Local Devnet & Starknet.py's Account Capabilities- learn to use the devnet for boosted development speed
- leverage starknet.py's AccountClient to proxy transactions through a deployed Account
- [Part 5]
🎨 StarkNet Frontends w/ Cairopal & Argent X- build a frontend from the community made dapp template
- connect to an account in your Argent X wallet & sign transactions
- [Notes]
💰 Contract Costs & Why Our Design Needs Work- learn a little about the future of transaction fees & how to write code with that in mind
- implement a Bloom filter in cairo
- measure the number of steps used by your contract calls
Finished Product
A react frontend that interacts with our deployed StarkNet contract, using Argent X accounts & browser extension: