Inspiration
The inspiration for this project was a couple of things that when they happened at once, it made it like this project was more of a calling than a discovery. The first chain I ever built on was Starknet, and I am a Caironaut. I love Cairo. I am a maintainer on OnlyDust (maintaining a Starknet project), and I had encountered countless situations where contributors obviously didn't test out their Cairo Code before submitting PRs, and I was always pissed, but decided to be understanding since they couldn't test their code without snforge. I was at ETH Enugu 2025 two months ago, where I had to try out building on other chains (Avalanche, SUI). I joined a team that used Avalanche where the main language is Solidity. I saw the main developer use remix IDE for easy testing, and was sad there wasn't something like that on Starknet. I had been thinking of an implementation until I saw a friend build an Chrome Extension. Then I thought of a Vscode extension, and ankh was born.
What it does,
Ankh is what I call an ABI Client. It enables testing of Smart Contract Functions on the fly, a bit like Remix IDE concept + Postman API Client experience. All the builder needs to do is configure their environment variables, select workspace cairo root, and scarb build. Ankh takes the important artifacts and provides this contract interaction interface.
How we built it
Ankh was built using TypeScript as the language, with the VScode API, and Starknet.js (also with a bit of Starknet React). When I was wondering what would make it possible, I investigated what the /target/dev folder contained and checked the Starknet.js documentation to see which of them were needed for deployment, and how to structure them properly in order to declare and deploy.
Challenges we ran into
One feature that the remix IDE provides is that it provides prefunded accounts for the user, and on investigation, I found out that remix doesn't test on the actual EVM, they have sort of a copy of the EVM, which I do not for Starknet. I had to limit Ankh for the meantime to Starknet sepolia (testnet). I know using the devnet is very possible, and will provide the prefunded accounts, but Starknet Sepolia was the fastest to setup, for the purpose of the Hackathon. I plan to set it up immediately after the Hackathon (Haha, already doing).
Accomplishments that we're proud of
I'm proud that I was able to:
- It is my first time of building a VSCode extension, so that is something to be proud of.
- Ankh brought the Postman API Client experience to Starknet (+ Remix IDE testing concept)
- Our smart UX decision of a sidebar + split-panel structure, with request and response section separate for the sake of future developments.
- Automatic toolchain setup: Some instructions in the README, such as adding casm = true are actually automatically handled by the tool. The only thing the user actually needs to do is add their account information to .env
What we learned
- VSCode Interaction: I learnt how the vscode api works in terms of trees, side panels, webviews, as well as posting and responding to messages between the webview and the vscode window.
- Build Artifacts: I learnt the exact mechanism behind declaring and deploying on the Starknet network(s) through the artifacts contained in the /target/dev folder, as well as everything that is necessary and everything that is not.y
- I learnt how to properly decode some smart contract responses to human-readable language, and how best to encode them for sending to the Starknet network
What's next for Ankh
Ankh has a couple of updates that should be out by November:
- The request and response sections were split for the sake of data transformation. Postman takes in raw JSON in the request bodies for instance, and this is something that needs to be done in ANKH. A friend of mine complained he was not able to paste proofs generated from garaga into the array entry form, but it is obvious the raw JSON format in the request body will make this possible.
- An event listening and logging mechanism needs to be implemented, so that each contract you test, during the testing time will have a record of the events you have triggered as a result of your actions so far.
- I am also looking into a block explorer view/transaction logging that has to do with contract in testing
- Some requested features could come from our users that are already testing Ankh right now
- I uploaded a roadmap file attached to my submission
Fun fact:
The name "Ankh" was inspired by the seeming trend. "Cairo" is the name of the capital of Egypt. "Scarb" sounds a bit like "Scarab", which has something to do with protection and life. I picked "Ankh", which also has something to do with ancient Egypt, the symbol of life. Plus, the name sounds cool
Built With
- starknet.js
- typescript
- vscode-api
Log in or sign up for Devpost to join the conversation.