<img src="https://github.com/Consensys/starknet-snap/raw/starknet-snap-v4.2.0/github/starknet-snap-install.gif" alt="Starknet Snap Install">
The Starknet Snap allows users to deploy Starknet accounts, make transactions on Starknet, and interact with Starknet dapps. A blog post describing the effort is available here:
As a user, you can start by installing the snap here:
You can also connect to the dApp:
This is a sample dApp that uses the Starknet Snap. The dApp code can be found here. Developers can experiment with integrating this snap using this example.
As the Starknet ecosystem is multi-wallet, the best approach for dApp developers in terms of interoperability is to build using the official get-starknet library. This way, developers can seamlessly make their dapp compatible with this snap and gain access to the MetaMask user base.
18. We strongly recommend you install via NVM to avoid incompatibility issues between different node projects.npm i -g yarn to make working with this repository easier.nvm use
yarn setup
⚠️ When the snap updates, you will need to reconnect from the dapp to see changes.
# This will start the starknet-snap, the associated dapp and the get-starknet compatibility layer
yarn start
This will launch the following:
Everything will run together in the same terminal in watch mode. If you want more control, see the next section
# Running Snap via watch mode
yarn workspace @consensys/starknet-snap watch
Alternatively, you can build and serve the snap manually. This can sometimes be more stable than watch mode but requires a manual rebuild and serve anytime there is a change on the snap.
# Building and serving snap manually
yarn workspace @consensys/starknet-snap build
yarn workspace @consensys/starknet-snap serve
You can run the UI alone by running
# Running Wallet UI
yarn workspace wallet-ui start
This will launch the following:
This guide is for a dApp that would be compatible only with MetaMask. To create a dApp compatible with all wallets in the Starknet ecosystem, prefer the get-starknet library. A sample dApp can be found here. If you still want to directly interact with the snap follow the tutorial below:
From the dApp, issue the following RPC request to install the Snap. Make sure it is using the latest version.
provider.request({
method: 'wallet_requestSnaps',
params: {
["npm:@consensys/starknet-snap"]: { version: "2.2.0" }, // Snap's version
},
});
From the dApp, issue the following RPC request to interact with the Snap.
provider.request({
method: 'wallet_invokeSnap',
params: {
snapId: "npm:@consensys/starknet-snap",
request: {
method: 'starkNet_getStoredUserAccounts', // Snap method
params: {
chainId: "1", // Snap method's parameter
},
},
},
});
The corresponding request payload and response for the latest Starknet Snap's API are documented in the openrpc spec.
If after update your funds are stuck on an old Cairo0 address, follow this tutorial to resolve stuck funds using the old StarkNet Snap.
This project is dual-licensed under Apache 2.0 and MIT terms:
Copyright (c) 2024 ConsenSys Software Inc.
$ claude mcp add starknet-snap \
-- python -m otcore.mcp_server <graph>