Argent X StarkNet launch

The first StarkNet wallet.

Tagged

Matt Marshall

Oct 3, 2024

Quick summary

We're proud that Argent X - the first wallet for StarkNet - is available from the Chrome Store, running on StarkNet Alpha on the Ethereum mainnet. It's a developer tool, for now, and shouldn't be confused with our mobile wallet on zkSync & Ethereum. Nevertheless, we're hugely excited to release this wallet to help fuel the growth of the StarkNet Dapp ecosystem.

Here's why we're focused on Layer 2 R&D, why Argent X on StarkNet, and how Dapp developers can get started.

A look at Argent X with a demo Dapp

Our Layer 2 R&D

We hold the firm belief that Ethereum has its place as the ultimate source of truth (the settlement layer). By reducing the environmental impact of blockchain technology with Proof of Stake, and increasing transaction capacity with the adoption of Layer 2 scalability solutions, 2022 will lead to mass adoption of the open internet and Web 3.

At Argent, we've been following and contributing to Layer 2 solutions as part of our mission to make crypto accessible for everyone.

As part of our research and development, we have been actively working on our smart contract specification that we will launch on Layer 2s in the future. It's much more than just a replica of the highly secure Argent Vault for Ethereum. As part of this effort we actively develop prototypes, and where needed, additional tooling to help with our product validation and testing.

About Argent X

Argent X is a Chrome extension that helps you create and manage accounts, and connects these accounts to decentralized applications built on StarkNet. It also secures the private keys that can authorize transactions on these accounts.

In contrary to Ethereum L1 where private keys and accounts are typically the same thing (think EOA wallets), StarkNet supports account abstraction which means that every account is a smart contract that must be deployed before you can interact with the network. This is both a fantastic opportunity and added complexity for a normal user.

Fortunately, Argent X abstracts all that complexity for you: it creates and secures your private keys, deploys account contracts controlled by your keys, connects to decentralized applications and sends transactions to the StarkNet network.

Experience the blockchain like you are used to, but at a fraction of the cost!

So what?

StarkNet's approach encompasses a bespoke API, signing methods and enforces Account Abstraction, meaning it is not the same as the typical Ethereum web3 json-rpc stack. For this reason, we decided to create prototypes demonstrating the full flow of a wallet to Dapp, by creating a lightweight Dapp, a smart contract account, and a browser extension to handle account setup and interact with the StarkNet API.

Given the effort we've put into the browser extension, we decided it was worthy of not just sharing with the community, but also distributing a packaged application that could be used in the future by consumers. Hence the launch of Argent X!

Please note that Argent X and StarkNet are both early products, with no warranty, and should be used only for development and testing purposes currently.

Get started as a builder

  • Download Argent X on the Chrome Web Store for Chrome & Brave.
  • Read the source code and contribute to Argent X on Github.
  • Talk to us on #argent-extension on StarkNet's Discord.
  • Build a Dapp with get-starknet (published in npm) based on our demo Dapp.

Dive deeper

If you want to use this StarkNet Wallet extension with your Dapp, the easiest way is to check out the @argent/get-starknet package developed in this repo by running:

# starknet.js is a peer dependency
yarn add @argent/get-starknet starknet

The package is a light wrapper around starknet.js to interact with the wallet extension. You can then use it like the following:

import { getStarknet } from "@argent/get-starknet"

// check if wallet extension is installed and initialized. Shows a modal prompting the user to download ArgentX otherwise.
const starknet = getStarknet({ showModal: true })
const [userWalletContractAddress] = await starknet.enable() // may throws when no extension is detected

// check if connection was successful
if(starknet.isConnected) {
    // If the extension was installed and successfully connected, you have access to a starknet.js Signer object to do all kind of requests through the users wallet contract.
    starknet.signer.invokeFunction({ ... })
} else {
    // In case the extension wasn't successfully connected you still have access to a starknet.js Provider to read starknet states and sent anonymous transactions
    starknet.provider.callContract( ... )
}

Check out starknet.js to learn more about how to use Provider and Signer.

Conclusion

We're hoping this is a valuable tool for the StarkNet development community, and we're looking forward to continuing our support of the vibrant Ethereum ecosystem.

Own it.

We're hiring for Argent X

We're looking for a Full Stack Javascript / Typescript Engineer with 3+ years of experience.

With a focus on world-class UX and security, you'll take ownership of the entire development lifecycle and quickly ship features in an agile environment.

As part of the team, you will also help define and build starknet.js, an open-source library helping applications interact with the StarkNet protocol.

Apply here

*Remote (Europe only)