# CHANGELOG #4 - SUAVE Development Updates (April 10, 2024)

**URL:** https://collective.flashbots.net/t/changelog-4-suave-development-updates-april-10-2024/3293
**Category:** SUAVE
**Tags:** changelog
**Created:** [April 11, 2024, 7:30am UTC](https://collective.flashbots.net/t/changelog-4-suave-development-updates-april-10-2024/3293 "2024-04-11T07:30:13Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![cryptrowanderer](https://collective.flashbots.net/letter_avatar_proxy/v4/letter/c/7ba0ec/32.png) [@cryptrowanderer](https://collective.flashbots.net/u/cryptrowanderer)
#### Post date: [April 11, 2024, 7:30am UTC](https://collective.flashbots.net/t/changelog-4-suave-development-updates-april-10-2024/3293/1 "2024-04-11T07:30:13Z")

</div>

# CHANGELOG / SUAVE Dev Updates

**a.k.a Simple Updates About Virtually Everything**

We’re regularly posting SUAVE updates to the community. The format is open to experiments.

**Past editions:**

- [#1 - 2024-01-18](https://collective.flashbots.net/t/suave-changelog-simple-updates-about-virtually-everyththing/2943)
- [#2 - 2024-02-15](https://collective.flashbots.net/t/changelog-2-suave-development-updates/3066)
- [#3 - 2024-03-25](https://collective.flashbots.net/t/changelog-3-suave-development-updates-march-25-2024/3238)

* * *

Progress on SUAVE has been swift and inspiring. There are a tonne of new features based on all the feedback we got from a team gathering in Vienna and the EthGlobal London hackathon.

## `suave-geth`

**New version released: 0.1.5 🎉**

The focus of this release is primarily Developer Experience. It includes much better support for the `spell` command, which will help you deploy contracts and send CCRs, as well as better error messages, and various lower-level fixes to make creating cool SUAPPs much smoother.

- Feat: [rename dns registry to service alias by jinmel · Pull Request #223 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/223).
- Feat: [Return error if the CCR was done to an empty contract by ferranbt · Pull Request #227 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/227).
- Feat: [Return valid error from forgecmd calls by ferranbt · Pull Request #228 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/228).
- Feat: [Add confidential inputs to spell cmd by ferranbt · Pull Request #230 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/230).
- Feat: [Embed the precompile error in the error message returned in the ccr by ferranbt · Pull Request #231 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/231).
- Bug: [Do not error on state change for transient objects by ferranbt · Pull Request #229 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/229).
- Bug: [Fix forgecmd read empty config from forge.toml by ferranbt · Pull Request #226 · flashbots/suave-geth · GitHub](https://github.com/flashbots/suave-geth/pull/226).

## `suave-std`

We’ve formalised what SUAVE-STD is: a library of essential patterns for building SUAPPs. As such, we removed many of the e2e examples, which now live in their own repos.

These examples include [Unisuapp](https://github.com/zeroXbrock/unisuapp), a [Next starter template](https://github.com/andytudhope/build-a-suapp-next-ts), and a [Vite starter template](https://github.com/zeroXbrock/web-suapp).

We’ve added a few important patterns to our essentials: especially the Gateway.sol contract:

- Feat: [Add Gateway contract to make calls to external contracts by ferranbt · Pull Request #72 · flashbots/suave-std · GitHub](https://github.com/flashbots/suave-std/pull/72).
- Feat: [Add jsonrpc call() method by ferranbt · Pull Request #71 · flashbots/suave-std · GitHub](https://github.com/flashbots/suave-std/pull/71).
- Feat: [Show precompile error message by ferranbt · Pull Request #70 · flashbots/suave-std · GitHub](https://github.com/flashbots/suave-std/pull/70).
- Feat: [Add tool to validate the correctness of the Solidity code snippets by ferranbt · Pull Request #68 · flashbots/suave-std · GitHub](https://github.com/flashbots/suave-std/pull/68).
- Bug: [Fix suavelib import path in some protocols by ferranbt · Pull Request #69 · flashbots/suave-std · GitHub](https://github.com/flashbots/suave-std/pull/69).
- Bug: [Fix to allow address(this) in peekers for forge confstore by ferranbt · Pull Request #73 · flashbots/suave-std · GitHub](https://github.com/flashbots/suave-std/pull/73).

## `suapp-examples`

We continue to extend these to illustrate the various different ways you can leverage the essential patterns illustrated in SUAVE-STD to build novel and powerful Suapps.

- New: [Add example of a suapp storing and using a private key by ferranbt · Pull Request #48 · flashbots/suapp-examples · GitHub](https://github.com/flashbots/suapp-examples/pull/48).
- New: [Example using a private key generated from the Suapp by ferranbt · Pull Request #50 · flashbots/suapp-examples · GitHub](https://github.com/flashbots/suapp-examples/pull/50).
- New: [Add example of suave-std/Gateway.sol by ferranbt · Pull Request #49 · flashbots/suapp-examples · GitHub](https://github.com/flashbots/suapp-examples/pull/49).
- New: [brock/nftee by zeroXbrock · Pull Request #52 · flashbots/suapp-examples · GitHub](https://github.com/flashbots/suapp-examples/pull/52).

## `suave-execution-geth`

A quick refresher: this is a minimal fork of Geth which gives you access to the SUAVE Execution Namespace. It’s useful for running e2e multi-chain examples, for instance: trying to build blocks on other chains.

- Feat: [https://github.com/flashbots/suave-execution-geth/pull/30](https://github.com/flashbots/suave-execution-geth/pull/30).

## `suave-docs`

- Full overhaul of all [tutorials](https://suave-alpha.flashbots.net/tutorials) 🎉
  - Local first
  - Using `spell`
  - Begin with basic programming model and the thing most builders have struggled with so far: the onchain-offchain dynamic. Extend this step by logical step through all the different primitives required for building Suapps.
  - 3-layered approach. `suave-std` is abstracted, essential patterns. The docs illustrate core patterns there in fleshed out examples with narrative to explain “why” and make them stick. We introduce a “Community Directory” to illustrate the many divergent ways in which the bottom two layers can be applied.

- New [Community Directory](https://suave-alpha.flashbots.net/tools/community-directory), showcasing the work of everyone who has contributed to SUAVE so far.

## `suavex-foundry`

- Wee also maintain a fork of Foundry called [suavex-foundry](https://github.com/flashbots/suavex-foundry).
- Brock demos this in both the `build-eth-block` example in Suapp Examples, and in Unisuapp. You can read more about it in [this post](https://collective.flashbots.net/t/anvil-for-mevm-external-provider/3114).

## Twitter 🐦

- [SUAVE Bot (@suave\_bot) / X](https://twitter.com/suave_bot). We finally have a twitter presence 🎉! Appropriately, it is a bot.
  - It’s purpose is to repost new forum threads, so post on our forum to get CT excited about your work. The bot may also pass you butter.
