Contracts on L2 can interact asynchronously with contracts on L1 via the L2→L1 messaging protocol.
https://docs.starknet.io/docs/L1-L2%20Communication/token-bridge
-
StarkNet and Cairo Documentation - Official Documentation.
-
Setting up the environment - How to install Cairo and StarkNet.
-
How Cairo Works - Low-level explanation of Cairo's mechanics.
-
Hello StarkNet - Tutorial for writing and deploying a contract.
-
Hello Cairo - Tutorials for writing various simple Cairo contracts.
-
Cairo Reference - Explanation of Cairo's syntax
-
Cairo – a Turing-complete STARK-friendly CPU architecture - Cairo Whitepaper
-
A verified algebraic representation of Cairo program execution - Proof Cairo's soundness using the Lean proof assistant
-
Cairo Playground - In-browser Cairo IDE, examples and puzzles
-
StarkNet Voting Workshop - End to end tutorial on building a voting app
-
YouTube channel - Official StarkWare YouTube channel.
-
Go based smart contracts and VM (https://loomx.io/) L2 - L1 Go based smart contract interaction to be achieved.
-
https://loomx.io/developers/en/transfer-gateway.html
L2 - L1 bridge with Deposit and Withdraw
Starknet RPC -
starknet_getBlockWithTxHashes - Get block information with transaction hashes given the block id.
starknet_getBlockWithTxs - Get block information with full transactions given the block id.
starknet_getStateUpdate - Get the information about the result of executing the requested block.
starknet_getStorageAt - Get the value of the storage at the given address and key.
starknet_getTransactionByHash - Get the details and status of a submitted transaction.
starknet_getTransactionByBlockIdAndIndex - Get the details of a transaction by a given block id and index.
starknet_getTransactionReceipt - Get the transaction receipt by the transaction hash.
starknet_getClassHashAt - Get the contract class hash in the given block for the contract deployed at the given address.
starknet_getBlockTransactionCount - Get the number of transactions in a block given a block id.
starknet_call - Call a StarkNet function without creating a transaction.
starknet_blockNumber - Get the most recent accepted block number.
starknet_blockHashAndNumber - Get the most recent accepted block hash and number.
starknet_chainId - Return the currently configured StarkNet chain id.
starknet_pendingTransactions - Returns the transactions in the transaction pool, recognized by this sequencer.
starknet_syncing - Returns an object about the sync status, or false if the node is not syncing.
https://github.com/suhasagg/juno/
- StarkNet Ecosystem - A community-driven initiative to showcase projects and teams building on StarkNet.
- Full-Stack StarkNet - Tutorials introducing a little bit of everything in a DApp.
- Interactive Tutorials for StarkNet Development - Interactive tutorials teaching all the different concepts in Cairo from beginner to advanced.
- Unit Testing in StarkNet -
Using
pytest
to test contracts - Managing StarkNet deployments using Nile ⛵️✨
- starknet-cairo-101 - Interactive Cairo workshop using Voyager with puzzles and tokens as prizes.
- starknet-erc20 - Learn about the ERC20 standard and how to deploy your own token, and collect points
- starknet-erc721 - Learn about the ERC721 standard and how to deploy your own NFT
- starknet-messaging-bridge - Learn how to build your own bridge between Ethereum and StarkNet
- starknet-accounts - Discover the wonders of account abstraction and create your own smart wallet
- Debugging - Debug contracts in an efficient way
-
Going all in - starknet Notion site of helpful resources
-
Perama's Blog - Large set of educational StarkNet / Cairo resources
-
Practical StarkNet lessons learned - Helpful tips for new StarkNet/Cairo programmers
-
Cairo Common Library - Docs for the Cairo Common Library (stdlib equivalent)
-
Cairo Concepts Overview - High level overview of concepts encountered in the Cairo ecosystem (Ethereum, Smart Contracts, Decentralization, Scaling, L2, Rollups, ZKPs etc.)
-
Account Abstraction - Explanation of StarkNet's account abstraction
-
Test Accounts - Explanation of building test accounts
- ChainSecurity DAI Bridge Audit - Audit of MakerDAO's DAI bridge by ChainSecurity.
- Cairo by Example - An introduction to Cairo with simple examples.
- Skeleton for StarkNet
- Quick example of a Minimum verifiable program
- Skeleton for SHARP
- SHARP programs differ from Cairo programs, this shows how to use SHARP for your own custom Cairo deploys (e.g. if you'd use StarkEx)
- StarkWare | Scaling Ethereum, ZK-rollups, Layer 1's, and more! - Interview with Louis Guthmann, Ecosystem Lead @ StarkWare
- StarkNet Basecamp - Learn how Starks, Cairo and StarkNet work, from the ground up.
- ZigZagExchange - Orderbook DEX
- physics-puzzle - Physics puzzle
- RYO - Dope Wars game engine
- qasr - ETH <> StarkNet NFT Bridge
- starknet-dai-bridge - ETH <> StarkNet DAI Bridge
- rk4-starknet - Runge Kutta 4th Order Method on StarkNet
- stardrop - Anonymous rewards
- tictactoe - RL Agent playing Tic-Tac-Toe
- tiny-dnn-on-starknet - Deep Neural Net PoC
- argent-contracts-starknet - Argent's Account contracts
- briq - NFT building & composability protocol
- Empiric Network - Oracle providing decentralized, transparent and composable data.
- Contracts Wizard for Cairo - Interactive smart contract generator based on OpenZeppelin Contracts for Cairo.
- starknet-hardhat-example - Example usage of the Starknet Hardhat plugin.
- starknet-react-example - Connect your ReactApp to StarkNet
- vue-stark-boil - Boilerplate for Argent-X/Vue.js.
- starknet-scaffold - Cario development scaffold using nile and pytest
- Dapp Developer at Shard labs.
- Open source developer at Open Zeppelin.
- Cairo engineers at Immutable.
- Chainlink integration team.
- Blockchain software engineer at JellyFi.
- get-starknet - wallet <-> dApp bridge.
- starknet.js - Javascript library
- starknet.py - Python library
- starknet-rs - Rust library
- starknet-hardhat-plugin - A plugin for integrating Starknet tools into Hardhat projects
- starknet-jvm - Library for JVM languages (java, kotlin and others).
- cairo-contracts - OpenZeppelin Contracts written in Cairo
- cairomate - Structured, dependable legos for Starknet development.
- caigo - Golang Library.
- starknet-react - React hooks library.
- Braavos - Browser extension wallet.
- argent-x - Browser extension wallet
- cairo_kernel - Jupyter kernel for Cairo.
- fossil - L1 state verification with STARKs.
- juno - Client (GoLang).
- nile - CLI tool to develop StarkNet projects written in Cairo by OpenZeppelin
- protostar - CLI tool for developing and testing contracts in Cairo.
- starknet-devnet - Local testnet
- starkops - StarkNet CLI
- voyager - Block explorer.
- starktx - StarkTx Transaction Decoder.
- ape-cairo - Compiler plugin for ape for the Cairo-lang.
- ape-starknet - Ape plugin for the StarkNet networks.
- warp - Solidity to cairo transpiler
- cairo.vim - (Outdated) vim syntax plugin for Cairo
- Cairo VS Code - VS Code syntax support for Cairo (requires manual installation)
- Cairo language support - Code assistance and compile error highlighting in VS Code.