Releases: dojoengine/dojo
v1.7.0-alpha.4
Important changes
This release is using a new stable version of Scarb: 2.12.2. Please update your .tools-version to use this stable version of Scarb that comes with several fixes required for bigger projects to compile.
At the Dojo level:
- Issues with enums used a keys have been solved.
- The layout equal to 0 is now fixed.
DojoStoreandDojoLegacyStorehad some edge cases fixed in this PR to ensure backward compatibility of models.
What's Changed
- chore(devcontainer): update image: v1.7.0-alpha.3 by @tarrencev in #3330
- fix(dojo-core): LegacyModel/DojoStore review by @remybar in #3332
- fix(dojo-core): derive Serde on WorldStorage by @glihm in #3334
- chore: bump to cairo
2.12.2by @glihm in #3335 - release(prepare): v1.7.0-alpha.4 by @tarrencev in #3338
Full Changelog: v1.7.0-alpha.3...v1.7.0-alpha.4
v1.7.0-alpha.3
Important fixes
this release comes with two major fixes:
- The dojo macro had an issue when serializing enumerations as keys in models. This bug sneaked in when we merge the proc macros upgrade. You can now use enums as keys in model in this version as expected.
- The sozo build command was failing on some workspaces in which only libraries were found. Now sozo correctly parses the different packages in the workspace to extract the default name when building. If you find yourself stuck in such place in the future, remember that you can always build with scarb now. Sozo build only adds the statistics and binding generation layers.
- Typescript v2 binding generation has been removed since unused.
What's Changed
- chore(devcontainer): update image: v1.7.0-alpha.2 by @tarrencev in #3325
- Add docs-sync to Github workflows by @kronosapiens in #3318
- fix(constants): correct typo in BIGNUMBERISH_IMPORT constant name by @VolodymyrBg in #3281
- fix(dojo-core): model keys serialization with Serde by @remybar in #3326
- fix(sozo): rework the detection of Dojo default package by @glihm in #3327
- refacto(bindgen): remove deprecated typescript_v2 by @glihm in #3328
- release(prepare): v1.7.0-alpha.3 by @tarrencev in #3329
New Contributors
- @VolodymyrBg made their first contribution in #3281
Full Changelog: v1.7.0-alpha.2...v1.7.0-alpha.3
v1.7.0-alpha.2
Important changes
This version comes with a dev version of Scarb, due to a bug fixed on the Scarb side. Please use dev-2025-09-05 version of Scarb at the moment. Once the stable release (expected to be 2.12.2) of Scarb including the fixes is out, you can transition to it.
Notable changes:
- Workspaces are now supported, Sozo can be used to build/test/migrate a dojo project from the workspace (the only condition is having the config files dojo_.toml at the workspace level). It is still valid to go into a package and use build/test/migrate too.
- Dojo is now correctly listed by the Cairo Language Server (provided by Scarb). You don't need to install anything extra, you may however want to enable those two settings. You shouldn't have anymore red lines, the navigation on definitions and type hints work correctly.
- Migration handles correctly the new DECLARE transaction delay/nonce policies, which stabilizes the migration when several classes have to be migrated. Some nonce issues still happen in some rare cases with some INVOKE preceding the DECLARE. We are still monitoring that, don't hesitate to restart the migration if this happens.
- A new option
--no-scarb-warningscan now be used for sozo build/test to remove warning and focus on errors. - Coloring from Scarb is now correctly piped to Sozo, which ensures a way better devX for checking tests that pass or fails and compilation warnings/error.
- The dojo macros will now emit a compilation error if the name of a model is longer than
26 chars. This is due to the fact that Dojo adds aValuesuffix to the model name and the resulting string must fit into afelt252. - Introspect issues with
Optionshould be fixed (at least for some reported edge cases). If some issues persist even with this version, please reach out opening an issue or on the discord channels.
Troubleshooting:
If the asdf install scarb dev-2025-09-05 doesn't work, you may have an outdated version of asdf. Ensure you are using asdf 0.18.0 at least. You may want to remove/add the plugin too.
What's Changed
- fix(sozo): fix sozo --version by @remybar in #3305
- refactor(types): serialize fixed array to object w size by @Larkooo in #3306
- chore: add dojo 1.7.0 by @kariy in #3307
- chore(devcontainer): update image: v1.7.0-alpha.1 by @tarrencev in #3290
- chore: validate
versions.jsonentries by @kariy in #3308 - refactor: simplify validation script by @kariy in #3310
- chore: add katana 1.7.0-alpha.2 by @kariy in #3311
- chore: Dojo clean up by @remybar in #3309
- fix: include full error details in sozo execute failures by @tarrencev in #3315
- chore: fix couple of typos in comment in
build.rsby @gap-editor in #3317 - chore: update version registry by @kariy in #3319
- feat(core): rename DojoStore functions to avoid conflicts with Serde by @remybar in #3313
- fix(core): upgrade checks for key members by @remybar in #3285
- fix(sozo): improve
use_legacy_storage()function to handle entrypoint not found by @remybar in #3312 - fix(primitive): from sql value and json & tests by @Larkooo in #3291
- chore: bump
katana-runnerrev by @kariy in #3320 - Add
asdf-installscript by @kronosapiens in #3323 - feat: bump
cairo-lang-*deps to2.12.0andstarknetto0.17.0by @kariy in #3322
New Contributors
- @gap-editor made their first contribution in #3317
Full Changelog: v1.7.0-alpha.1...v1.7.0-alpha.2
v1.7.0-alpha.1
Update the supported RPC string to reflect the actual RPC version that Sozo supports.
Full Changelog: v1.7.0-alpha.0...v1.7.0-alpha.1
v1.7.0-alpha.0
What's Changed
- chore: add Katana 1.6.1 by @kariy in #3277
- chore: add Katana 1.6.2 by @kariy in #3280
- feat: implement proc macro + starknet foundry + cairo optimizations by @glihm in #3266
- chore(devcontainer): update image: v1.6.0-alpha.2 by @tarrencev in #3278
- chore: add katana@1.6.3 by @kariy in #3283
- fix(utils/invoker): add split for big multicalls by @glihm in #3284
- chore(devcontainer): update image: v1.6.0 by @tarrencev in #3282
- chore: fix some typos in comment by @pingshuijie in #3286
- refactor(sozo): improve error message on loading non-existent World state by @remybar in #3297
- feat(starknet): bump JSON-RPC spec to v0.9.0-rc.2 by @kariy in #3293
- feat(core): split Introspect and DojoStore derive attributes by @remybar in #3294
- fix(core): FixedArray Ty/Layout improvements by @remybar in #3296
- release(prepare): v1.7.0-alpha.0 by @tarrencev in #3299
- ci(release): remove references of language server by @kariy in #3300
New Contributors
- @pingshuijie made their first contribution in #3286
Full Changelog: v1.6.0-alpha.2...v1.7.0-alpha.0
v1.6.2
v1.6.1
Important changes
This release adds the support for nested enums are keys.
Before this release, only enums used as keys in a model would be upgradeable. But if the enums contains nested enums, it wasn't working as expected.
This release ensures that enums are always upgradeable, no matter the nested level.
pub enum E1 {
Var1: E2,
Var2,
}
pub enum E2 {
Var1,
// Adding a variant here is now supported in model upgrades.
}
#[dojo::model]
pub struct MyModel {
#[key]
pub v: E1,
pub data: u32,
}What's Changed
New Contributors
Full Changelog: v1.6.0...v1.6.1
v1.6.0
Important changes
This release stabilizes the use of RPC 0.8 of Starknet.
Dojo core
Small changes to correctly handle the errors now that they can be match.
Sozo
Binding generation is now a standalone command (but can still be used during the sozo build command). This could allow some bindings updates without having to re-build the cairo project.
A new parameter for transactions max-calls can now be used to ensure multi calls are not too big for the new network limits. By default, there is no limit and Sozo will try to send only one transaction per step during the migration. If you hit network limit because of the number of resources (models, events, contracts), playing with this value in the dojo_<profile>.toml will help adjusting the transaction size.
SDKs
Fixes on binding generation for unreal engine and typescript targets.
What's Changed
- Update starter link after
dojoup installby @kronosapiens in #3234 - chore(devcontainer): update image: v1.5.1 by @tarrencev in #3233
- Fix broken getting started link in README by @ritik4ever in #3235
- Update DEVELOPMENT.md by @kronosapiens in #3236
- feat: bump rpc spec to 0.8 by @kariy in #3179
- release(prepare): v1.6.0-alpha.0 by @tarrencev in #3241
- fix(dojoup): remove new line in the source cmd by @bengineer42 in #3244
- chore: edited the build badge and its link by @braveocheretovych in #3221
- chore(devcontainer): update image: v1.6.0-alpha.0 by @tarrencev in #3242
- chore: add katana 1.5.4 by @kariy in #3245
- chore: add the missing backticks in the comments by @one230six in #3243
- fix(bindgen): use world namespace for imported models in TypeScript S… by @MartianGreed in #3249
- fix(bindgen): filter out Value models by @MartianGreed in #3248
- fix(bindgen): fix ts bytearray type mapping by @MartianGreed in #3247
- chore: update katana versions by @kariy in #3253
- sozo(unrealengine): handle UE5.6 and Dojo 1.5 by @caillef in #3252
- Fix assert caller permission by @remybar in #3254
- feat(sozo): create standalone bindgen command by @MartianGreed in #3246
- feat(sozo): add MCP sever by @glihm in #3256
- refactor(types): schema json sql value by @Larkooo in #3257
- chore(versions): update torii versions by @Larkooo in #3261
- release(prepare): vv1.6.0-alpha.1 by @tarrencev in #3262
- chore(devcontainer): update image: v1.6.0-alpha.1 by @tarrencev in #3264
- chore(versions): allow katana 1.6.0 on alpha by @steebchen in #3270
- chore(versions): add Dojo 1.6.0-alpha.1 by @kariy in #3272
- refactor(sozo): check RPC spec compatibility by @kariy in #3271
- chore: fix some minor issues in the comments by @rustfix in #3268
- fix(core): allow fixed layout upgrade for class hash change by @glihm in #3274
- release(prepare): v1.6.0-alpha.2 by @tarrencev in #3276
- chore: add Katana 1.6.1 by @kariy in #3277
- chore: add Katana 1.6.2 by @kariy in #3280
- chore(devcontainer): update image: v1.6.0-alpha.2 by @tarrencev in #3278
- fix(utils): ensure the number of calls in multicall can be manually changed
New Contributors
- @ritik4ever made their first contribution in #3235
- @braveocheretovych made their first contribution in #3221
- @one230six made their first contribution in #3243
- @rustfix made their first contribution in #3268
Full Changelog: v1.5.1...v1.6.0
v1.6.0-alpha.2
Important changes
This update is mainly to add stability to the RPC upgrade. Katana 1.6.0 has been re-done, and should now support migration of Dojo worlds in all cases.
It also fixes an issue where existing worlds resources couldn't be upgraded, because the class hash changed but fields are actually the same.
What's Changed
- chore(devcontainer): update image: v1.6.0-alpha.1 by @tarrencev in #3264
- chore(versions): allow katana 1.6.0 on alpha by @steebchen in #3270
- chore(versions): add Dojo 1.6.0-alpha.1 by @kariy in #3272
- refactor(sozo): check RPC spec compatibility by @kariy in #3271
- chore: fix some minor issues in the comments by @rustfix in #3268
- fix(core): allow fixed layout upgrade for class hash change by @glihm in #3274
- release(prepare): v1.6.0-alpha.2 by @tarrencev in #3276
New Contributors
Full Changelog: v1.6.0-alpha.1...v1.6.0-alpha.2
v1.6.0-alpha.1
Important changes
Sozo:
- Bindgen fixes for several targets (unreal and typescript).
- Standalone command to generate the bindings with
sozo bindgenif the project is already built. - A first implementation of the MCP server for Sozo which supports building, testing and migrating contracts + inspecting the project to get info about a contract. Currently, the MCP server must be started pointing to the scarb manifest path to ensure the server can explore the project's content. Sozo MCP uses a
stdioserver, which can be added to the.claude.jsonthis way (or using themcp addcommand):
"mcpServers": {
"<PROJECT_NAME>": {
"type": "stdio",
"command": "sozo",
"args": [
"mcp",
"--manifest-path",
"/path/project/spawn-and-move/Scarb.toml"
],
"env": {}
},
}Core
- Permissions error flow now matches the result of the starknet contract call syscall to ensure better error message.
What's Changed
- fix(dojoup): remove new line in the source cmd by @bengineer42 in #3244
- chore: edited the build badge and its link by @braveocheretovych in #3221
- chore(devcontainer): update image: v1.6.0-alpha.0 by @tarrencev in #3242
- chore: add katana 1.5.4 by @kariy in #3245
- chore: add the missing backticks in the comments by @one230six in #3243
- fix(bindgen): use world namespace for imported models in TypeScript S… by @MartianGreed in #3249
- fix(bindgen): filter out Value models by @MartianGreed in #3248
- fix(bindgen): fix ts bytearray type mapping by @MartianGreed in #3247
- chore: update katana versions by @kariy in #3253
- sozo(unrealengine): handle UE5.6 and Dojo 1.5 by @caillef in #3252
- Fix assert caller permission by @remybar in #3254
- feat(sozo): create standalone bindgen command by @MartianGreed in #3246
- feat(sozo): add MCP sever by @glihm in #3256
- refactor(types): schema json sql value by @Larkooo in #3257
- chore(versions): update torii versions by @Larkooo in #3261
- release(prepare): vv1.6.0-alpha.1 by @tarrencev in #3262
New Contributors
- @braveocheretovych made their first contribution in #3221
- @one230six made their first contribution in #3243
Full Changelog: v1.6.0-alpha.0...v1.6.0-alpha.1