Rosetta is a middleware software that acts like an Ethereum RPC. It makes requests to the Starknet network while outputting Ethereum RPC outputs. This allows users to interact with Starknet the same as they interact with the EVM-compatible chain.
Rosetta
- Rosetta is not a Starknet node itself.
- Rosetta needs a working Starknet node to be connected.
- Rosetta can handle both Starknet and Ethereum RPC requests.
What does Rosetta benefit to users?
- You can connect and interact protocols in Starknet with your existing EVM wallet (Metamask, Trust wallet, Hardware wallets, etc.)
- You can use Rosetta on local. There is no sync needed. Simply, users can clone the repo and use their local Rosetta node to connect to Starknet.
- You can use L1 interactive protocols by just changing the network on your wallet.
What does Rosetta benefit to devs?
- You can use all EVM-compatible libraries. (Ethers, web3js, etc.)
- If you want to migrate your project from the EVM chain to Starknet, all you need to do is develop your smart contracts with cairo. You just need to care about providing the same ABI in both. You don't need to make any changes on frontend, or backend. Rosetta handles all of these.
Rosetta aims to give EVM experience to users where they won't ever notify they are using Starknet.
Rosettanet: Middleware software, core part of Rosetta. It acts like a gateway between Starknet and the user. It formats Ethereum RPC requests to the format that Starknet RPC accepts, and formats Starknet RPC responses into Ethereum RPC response. Written in Typescript. In future it also will be developed with Rust.
Rosetta Accounts: Account smart contract library will be written in Cairo. Custom account contracts that are able to verify Ethereum account signatures on Starknet to execute and verify transactions.
Rosetta Verifier: Starknet smart contracts that verify signatures with format EIP-1559. Converts EVM calldatas into Starknet calldata. This is the core part to achieve non-trusted setup.
Lens: Permissionless Starknet smart contract that matches Ethereum addresses with Starknet addresses.
Additional extensions will be developed to provide integrability for existing Starknet protocols.
The contracts are located in the contracts/
directory. It's a scarb
project, so you can use the scarb
CLI to build it.
It uses Starknet Foundry
for tests.
See the contracts README for more information.
See the RPC README for more information.
Here is a high-level overview of the architecture of Rosettanet:
Alex Metelli 💻 |
Erim 💻 |
Bora Atik 💻 |
tarun kaushik 💻 |
Tuan Tran 💻 |
Jimmy Fate 💻 |
Akashneelesh 💻 |
Aryan Godara 💻 |