Releases: dfinity/sdk
0.30.2-beta.0
Improve frontend canister sync logic
Previously, committing frontend canister changes happened in multiple batches defined by simple heuristics that would likely not exceed the ingress message size limit.
Now, the ingress message size limit is respected more explicitly, and also a limit of total content size per batch since all content in the batch newly gets hashed in the canister.
Dependencies
Motoko
Updated Motoko to 0.16.3
Candid
Updated candid_parser to 0.2.4.
0.30.1
feat: asset sync now prints the target asset canister state hash in --verbose mode
If an asset canister is updated and --verbose is enabled, dfx will now print the state hash of the local assets before syncing. Calling compute_state_hash on the asset canister after syncing will eventually return the same hash.
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:
Frontend canister
feat: list returns more info about assets
Asset info now contains the fields max_age: opt nat64;, headers: opt vec HeaderField;, allow_raw_access: opt bool;, and ``is_aliased: opt bool;` in addition to the previously returned ones.
feat!: list is now paginated
list now returns info about up to 100 assets instead of all assets in the canister. start allows specifying the offset at which the list of assets should start. length allows specifying a smaller limit if e.g. headers are too large to return the default number of assets. The full argument to list is now (record { start: opt nat; length: opt nat }).
feat: compute_state_hash
The function compute_state_hash works similar to compute_evidence, but instead of computing a hash over a batch of changes, it computes a hash over the full asset canister content. This can be used to verify the integrity of assets e.g. between a live and a local deployment. (This will only work if builds are deterministic. If there are e.g. timestamps hidden in filenames then hashes will not match.)
feat: get_state_info returns last asset change timestamp and state hash
- Module hash: 15a6366a4823baf994f314a55ddbdda333dff11cbcc5114caebfe444e5eae3b6
- #4434
0.30.1-beta.2
feat: asset sync now prints the target asset canister state hash in --verbose mode
If an asset canister is updated and --verbose is enabled, dfx will now print the state hash of the local assets before syncing. Calling compute_state_hash on the asset canister after syncing will eventually return the same hash.
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:
Frontend canister
feat: list returns more info about assets
Asset info now contains the fields max_age: opt nat64;, headers: opt vec HeaderField;, allow_raw_access: opt bool;, and ``is_aliased: opt bool;` in addition to the previously returned ones.
feat!: list is now paginated
list now returns info about up to 100 assets instead of all assets in the canister. start allows specifying the offset at which the list of assets should start. length allows specifying a smaller limit if e.g. headers are too large to return the default number of assets. The full argument to list is now (record { start: opt nat; length: opt nat }).
feat: compute_state_hash
The function compute_state_hash works similar to compute_evidence, but instead of computing a hash over a batch of changes, it computes a hash over the full asset canister content. This can be used to verify the integrity of assets e.g. between a live and a local deployment. (This will only work if builds are deterministic. If there are e.g. timestamps hidden in filenames then hashes will not match.)
feat: get_state_info returns last asset change timestamp and state hash
- Module hash: 15a6366a4823baf994f314a55ddbdda333dff11cbcc5114caebfe444e5eae3b6
- #4434
0.30.1-beta.1
feat: asset sync now prints the target asset canister state hash in --verbose mode
If an asset canister is updated and --verbose is enabled, dfx will now print the state hash of the local assets before syncing. Calling compute_state_hash on the asset canister after syncing will eventually return the same hash.
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:
Frontend canister
feat: list returns more info about assets
Asset info now contains the fields max_age: opt nat64;, headers: opt vec HeaderField;, allow_raw_access: opt bool;, and ``is_aliased: opt bool;` in addition to the previously returned ones.
feat!: list is now paginated
list now returns info about up to 100 assets instead of all assets in the canister. start allows specifying the offset at which the list of assets should start. length allows specifying a smaller limit if e.g. headers are too large to return the default number of assets. The full argument to list is now (record { start: opt nat; length: opt nat }).
feat: compute_state_hash
The function compute_state_hash works similar to compute_evidence, but instead of computing a hash over a batch of changes, it computes a hash over the full asset canister content. This can be used to verify the integrity of assets e.g. between a live and a local deployment. (This will only work if builds are deterministic. If there are e.g. timestamps hidden in filenames then hashes will not match.)
- Module hash: 51e80aa7ecbb94ba477bbc910c934794db674d9c441c3f013b8e09390facb389
- #4428
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.