Walnut logo

Changelog

Stay updated on everything we ship. Subscribe with your email to get the latest Walnut news straight to your inbox.

settings-page

Debugging on Custom Networks

This week we added support for debugging transactions on custom networks, a key request from DOJO on-chain game developers. Walnut now connects to any Starknet network via custom RPC URLs, with full support for debugging, simulating, and verifying smart contracts. Next week, we will pilot custom networks with hosted Slot instances in New York, meeting DOJO game developers and demonstrating Walnut.

More Improvements

  • Created a new Settings page to configure custom RPC URLs, enabling debugging transactions on custom networks.
  • Aggregated search now displays transactions and verified contracts from mainnet, testnet, and custom networks.
  • Fixed a caching bug that caused state mismatches and inconsistencies in transaction simulations.
  • Extended Call Trace to include function call arguments, results, and interface names for internal calls.
  • Improved regex parsing for function call names in the Call Trace for better readability.
verification-status-api

More Resilient Contract Class Verification

In the latest release, we moved contract class verification to run in the background, making the service more resilient when verifying larger contracts or multiple contracts.

More Improvements

  • Introduced a new API endpoint to check the verification status of a contract class. Available at /v1/verification/{:id}/status. Try it here.
  • Enhanced the accuracy of simulated transactions by applying state transitions for all preceding transactions within the same block.
  • Updated the nudge verification link from the Walnut app to direct users to the Walnut documentation.
code-attribute-highlight

Code and Attribute Highlighting in Debugger

In the latest release, we introduced highlighting for both Cairo attributes and Code snippets in the step-by-step debugger.

More Improvements

  • Debugger windows automatically open to the nearest verified contract.
  • Fixed a bug related to incorrect block timestamp.
The gif of source file switch

Improvements to the Debugger Window

In the latest release, we improved the debugging experience by allowing switching between source files in the debug window.

More Improvements

  • The Cairo version is now displayed in the contract details view.
  • Improved error handling for contract verification.
  • Added a message when no execution trace is found, instead of nudging users for verification.
Transaction page information box

Improvements to the Transaction Information Box

In the latest release, we focused on enhancing the information box on the transaction page. We now display the transaction type, timestamp, and transaction version.

More Improvements

  • Added support for Declare transactions.
  • Input and output data can now be switched between Hexadecimal and Decimal formats, and vice versa.
  • Improved handling of transaction simulation errors.
Contract Call within Internal Function Call Trace

Improvements to the Call Trace

In the latest release, we focused on improving the call trace. Concretely, we worked on displaying contract calls within internal function calls. In the screenshot above, you can see the IVerificationHelper.calculation_proof correctly placed right after the internal function call IVerificationHelperDispatcherImpl::calculation_proof.

More Improvements

  • If the Contract Name is not present, the app now uses Interface Name as a fallback.
  • Added human readable Chain ID to transaction details.
Sneak Peek of Walnut Window with nudging people to verify contracts

Contract Verification

In the latest release, we added full support for contract verification to Walnut. Developers can verify their contracts to get detailed call traces, step-by-step debugging, and execution mapping to the source code in the Cairo contracts.

Improvements

  • Added a new alert message in the debugger tab and the call trace to prompt contract verification if the contract is not yet verified.
  • Errors in the call traces now show details about the error.
  • Opening the debugger from the call trace line now moves the execution to the corresponding line.
  • Renamed "testnet" to "sepolia".
Sneak Peek of Walnut Window with internal function call panic

Internal Function Call with Error

In the latest release, we focused on displaying errors in the call trace.

Improvements

  • Added error details below the deepest internal function call where the panic occurred.
  • In collaboration with Software Mansion, we added contract verification into foundry. Check the guide documentation here.
Sneak peak of the Walnut Debugger Window with arguments and result values

Added Argument and Result Values to the Debugger

Function arguments and return results are now visible in the step-by-step-debugger. In the screenshot above, the extract_age function returns a single result: 18.

Improvements

  • The debugger now shows arguments and return values. Some data might be missing in specific places, which will be improved in the future.
  • Internal function calls in the Call Trace now display the argument and result values.
  • New API endpoint for querying the source code of verified contracts via API using Class ID. Available at the /{network_id}/classes/{class_id} endpoint. Try it here.
  • Added support for the Sepolia testnet and deprecated Goerli.
Sneak peak of the Walnut Verifaction API for starknet smart contracts

Contract Verification API

In the latest release, we have introduced the contract class verification API endpoint.

Improvements

  • Launched new API at api.walnut.dev with a /verify endpoint for Cairo Smart Contract Verification.
  • In the Call Trace, the DELEGATE and CALL functions have now been merged and are displayed as DCALL.
Sneak peak of the Walnut Debugger for Starknet Transactions

Debugger for Starknet Transactions

In the latest release, we finally launched the first version of the step by step debugger. It comes with support for multiple contracts in the transaction, and moves the code execution accordingly.

Improvements

  • External calls now also present the source code of the contract in Cairo.
Code snippet on Walnut

Contract Source Code in Call Trace

In the latest release, we added support for displaying the corresponding Cairo source code for each call in the call trace.

Improvements

  • Each call trace now displays the associated Cairo line and the corresponding code snippet where the call occurred. This only works for verified contracts.
  • The new events tab showcases all emitted events for simulated transactions.
  • Data for arguments and results is now also available in view functions.
Gif of resimulating an existing transaction on Walnut

Transaction Simulations

In this release we added support for transaction simulations into Walnut. You can simulate a new transaction, or re-simulate an existing one.

Improvements

  • New transaction simulation screen that allows to re-run existing transactions or simulate new ones on the Starknet Mainnet network
  • Simulations support modification of the following transaction parameters: sender address, calldata, block number, chain id, and transaction version
Internal function calls in a transaction call trace.

Internal functions in the call trace

In this release we added support for internal function calls in the call trace. After verifying contracts, the call trace presents calls to every Cairo function, and will also present details about each call's arugments and return values.

Improvements

  • Support for different colors in the call trace to visually separate certain elements. For example contract names, entrypoints, arguments.
  • After clicking on a call trace item, you get details about argument and return values.
Walnut homepage with search for transactions

Walnut v0.1.0

This is our first changelog message. We started building Walnut to make transaction debugging and simulations on Starknet easier. In the initial version, we plan the following features:

Transaction Call Trace

  • Support for any transaction, including failed transactions
  • The call trace will include calls to internal functions within each contract involved in the simulated transaction
  • Each call will present decoded arguments with names and values, as well as the return value
  • For verified contracts, ability to see the exact call location mapped to the Cairo source code.

Contract Verification

  • Ability to upload the contract source code to Walnut for verification

Step by step debugger

  • Visual debugger that will allow to re-run the transaction line-by-line, mapped to the original source code in Cairo.

Transaction Simulations

  • Visual debugger that will allow to re-run the transaction line-by-line, mapped to the original source code in Cairo.