Releases: dfinity/sdk
0.30.1-beta.0
feat: support dogecoin for the local dev environment
You can now launch a network with dfx start --enable-dogeoin to run the dogecoin
integration locally.
feat: improved the canister snapshot download/upload feature
Improved the canister snapshot download/upload feature by
- adding progress bars to snapshot download/upload
- streaming snapshot download/upload directly to/from disk.
- supporting download/upload with resuming.
- supporting download/upload with concurrency, default to 3 tasks in parallel.
fix: use pocket-ic to init BTC canisters
The custom logic was prone to becoming outdated, such as not adapting to changing cycles fees.
By using pocket-ic, which gets updated frequently, the BTC integration is significanly less likely to break.
fix: dfx start --enable-bitcoin will add --bitcoin-node 127.0.0.1:18444 unless nodes are specified in dfx.json
chore: Bump cdk to 0.19 in project template.
Dependencies
Replica
Updated replica to elected commit 724ae4101bfdd8d4443126a6a8b1ec5ca9b68a12.
This incorporates the following executed proposals:
0.30.0-beta.2
feat: dfx start --system-canisters for bootstrapping system canisters
This new flag utilizes the built-in system canisters bootstrapping capability provided by PocketIC v10.
dfx nns install is not needed anymore.
When using dfx start --system-canisters, there's no option to specify accounts to have initial balances like you can with dfx nns install --ledger-accounts <account-ids>.
However, the anonymous identity's account comes with an initial balance of 1 Billion ICP. You can transfer some of these ICP tokens to your own account on the ICP ledger. Then convert some ICP into cycles balance on the cycles-ledger.
YOUR_ACCOUNT_ID="$(dfx ledger account-id)"
dfx ledger --identity anonymous transfer --memo 1 --icp 1000000 "$YOUR_ACCOUNT_ID"
dfx cycles convert --amount 100fix: bump svelte dependencies in project templates
Frontend canister
Use BTreeMap instead of HashMap for headers to guarantee deterministic ordering.
Sets the ic_env cookie for html files, which contains the root key and the canister environment variables that are prefixed with PUBLIC_.
Please note that this version of the frontend canister is only compatible with PocketIC v10 and above.
- Module hash: b312a16c3179cf8384afa852e468c1333b7439d4c5a39f26df69b12320f629f8
- #4400
- #4392
- #4387
- #4389
Dependencies
Candid
Updated candid_parser to 0.2.2.
Replica
Updated replica to elected commit 575bcd0954e9d00066fd465223b755bda645edd6.
This incorporates the following executed proposals:
0.30.0-beta.1
feat: dfx start --system-canisters for bootstrapping system canisters
This new flag utilizes the built-in system canisters bootstrapping capability provided by PocketIC v10.
dfx nns install is not needed anymore.
When using dfx start --system-canisters, there's no option to specify accounts to have initial balances like you can with dfx nns install --ledger-accounts <account-ids>.
However, the anonymous identity's account comes with an initial balance of 1 Billion ICP. You can transfer some of these ICP tokens to your own account on the ICP ledger. Then convert some ICP into cycles balance on the cycles-ledger.
YOUR_ACCOUNT_ID="$(dfx ledger account-id)"
dfx ledger --identity anonymous transfer --memo 1 --icp 1000000 "$YOUR_ACCOUNT_ID"
dfx cycles convert --amount 100fix: bump svelte dependencies in project templates
Frontend canister
Use BTreeMap instead of HashMap for headers to guarantee deterministic ordering.
Sets the ic_env cookie for html files, which contains the root key and the canister environment variables that are prefixed with PUBLIC_.
Please note that this version of the frontend canister is only compatible with PocketIC v10 and above.
- Module hash: b312a16c3179cf8384afa852e468c1333b7439d4c5a39f26df69b12320f629f8
- #4400
- #4392
- #4387
- #4389
Dependencies
Candid
Updated candid_parser to 0.2.2.
Replica
Updated replica to elected commit 575bcd0954e9d00066fd465223b755bda645edd6.
This incorporates the following executed proposals:
0.30.0-beta.0
feat: dfx start --system-canisters for bootstrapping system canisters
This new flag utilizes the built-in system canisters bootstrapping capability provided by PocketIC v10.
dfx nns install is not needed anymore.
When using dfx start --system-canisters, there's no option to specify accounts to have initial balances like you can with dfx nns install --ledger-accounts <account-ids>.
However, the anonymous identity's account comes with an initial balance of 1 Billion ICP. You can transfer some of these ICP tokens to your own account on the ICP ledger. Then convert some ICP into cycles balance on the cycles-ledger.
YOUR_ACCOUNT_ID="$(dfx ledger account-id)"
dfx ledger --identity anonymous transfer --memo 1 --icp 1000000 "$YOUR_ACCOUNT_ID"
dfx cycles convert --amount 100fix: bump svelte dependencies in project templates
Frontend canister
Use BTreeMap instead of HashMap for headers to guarantee deterministic ordering.
Sets the ic_env cookie for html files, which contains the root key and the canister environment variables that are prefixed with PUBLIC_.
Please note that this version of the frontend canister is only compatible with PocketIC v10 and above.
- Module hash: b312a16c3179cf8384afa852e468c1333b7439d4c5a39f26df69b12320f629f8
- #4400
- #4392
- #4387
- #4389
Dependencies
Candid
Updated candid_parser to 0.2.2.
Replica
Updated replica to elected commit 45657852c1eca6728ff313808db29b47c862ad13.
This incorporates the following executed proposals:
0.29.2
0.29.2
Frontend canister
Use CBOR for serializing asset canister state to stable memory instead of Candid.
- Module hash: 423f20ee4e5daf8f76d6bb2b4a87440227f15b26cf874c132fd75d83e252c8f6
- #4368
feat: extended dfx canister update-settings with --sync-with option.
Extended dfx canister update-settings with --sync-with option to support syncing canister settings from one cansiter to another, example as below.
dfx canister update-settings to_canister --sync-with from_canister
Dependencies
Motoko
Updated Motoko to 0.16.2
Bitcoin canister
Upgraded Bitcoin canister to release/2025-07-02
Replica
Updated replica to commit 615045e039c57ed842c689e49a07ab3de3a8a781.
0.29.2-beta.0
0.29.2
Frontend canister
Use CBOR for serializing asset canister state to stable memory instead of Candid.
- Module hash: 423f20ee4e5daf8f76d6bb2b4a87440227f15b26cf874c132fd75d83e252c8f6
- #4368
feat: extended dfx canister update-settings with --sync-with option.
Extended dfx canister update-settings with --sync-with option to support syncing canister settings from one cansiter to another, example as below.
dfx canister update-settings to_canister --sync-with from_canister
Dependencies
Motoko
Updated Motoko to 0.16.2
Bitcoin canister
Upgraded Bitcoin canister to release/2025-07-02
Replica
Updated replica to commit 615045e039c57ed842c689e49a07ab3de3a8a781.
0.29.1
0.29.1
fix: ensure deterministic serialization of tech_stack metadata
The tech_stack metadata was previously defined with HashMap, which resulted in non-deterministic serialization due to its random key ordering.
This has been fixed by replacing it with BTreeMap, which sorts keys and guarantees consistent, deterministic output every time.
Dependencies
Motoko
Updated Motoko to 0.16.1
Candid
Updated candid_parser to 0.2.1.
Comments applied to Candid elements will now become doc comments in dfx's generated bindings.
// Type comments
type Ex = variant {
// Variant comments
Var: record {
// Field comments
field: nat;
}
}
// Service comments
service : {
// Method comments
func : (Ex) -> ();
}
Frontend canister
- Module hash: 4014793c83ae0ff2d851a0c4e62f289a114d36bc1826f5579f55a70ff3c70551
- #4354
0.29.1-beta.1
0.29.1
fix: ensure deterministic serialization of tech_stack metadata
The tech_stack metadata was previously defined with HashMap, which resulted in non-deterministic serialization due to its random key ordering.
This has been fixed by replacing it with BTreeMap, which sorts keys and guarantees consistent, deterministic output every time.
Dependencies
Motoko
Updated Motoko to 0.16.1
Candid
Updated candid_parser to 0.2.1.
Comments applied to Candid elements will now become doc comments in dfx's generated bindings.
// Type comments
type Ex = variant {
// Variant comments
Var: record {
// Field comments
field: nat;
}
}
// Service comments
service : {
// Method comments
func : (Ex) -> ();
}
Frontend canister
- Module hash: 4014793c83ae0ff2d851a0c4e62f289a114d36bc1826f5579f55a70ff3c70551
- #4354
0.29.1-beta.0
0.29.1
fix: ensure deterministic serialization of tech_stack metadata
The tech_stack metadata was previously defined with HashMap, which resulted in non-deterministic serialization due to its random key ordering.
This has been fixed by replacing it with BTreeMap, which sorts keys and guarantees consistent, deterministic output every time.
Dependencies
Motoko
Updated Motoko to 0.16.0
Candid
Updated candid_parser to 0.2.1.
Comments applied to Candid elements will now become doc comments in dfx's generated bindings.
// Type comments
type Ex = variant {
// Variant comments
Var: record {
// Field comments
field: nat;
}
}
// Service comments
service : {
// Method comments
func : (Ex) -> ();
}
Frontend canister
- Module hash: 4014793c83ae0ff2d851a0c4e62f289a114d36bc1826f5579f55a70ff3c70551
- #4354
0.29.0
0.29.0
feat: add dfx native support for aarch64-Linux
Add dfx native support for aarch64-Linux.
feat: support canister snapshot download and upload.
Added dfx canister snapshot download and dfx canister snapshot upload commands to download and upload the canister snapshot.
Dependencies
Motoko
Updated Motoko to 0.15.1
Replica
Updated replica to elected commit 615045e039c57ed842c689e49a07ab3de3a8a781.
This incorporates the following executed proposals: