Releases: dfinity/sdk
0.26.1-beta.1
Release: 0.26.1-beta.1
0.26.1-beta.0
fix: clear state when switching from shared to project network
dfx would try to reuse canister ids when switching from a shared network to a project network,
which would cause errors since those canister ids wouldn't exist. dfx now deletes the .dfx
directory if it was previously used with the shared local network.
feat: Set canister ids using dfx canister set-id <canister name> <principal>
Added the counterpart to dfx canister id <canister name>
. Networks can be targeted as usual using --network <network name>
or the --ic
shorthand for mainnet.
chore: use account_balance
instead of the legacy account_balance_dfx
Use the account_balance
rather than the legacy account_balance_dfx
on the ICP ledger.
feat: Extend dfx ledger transfer
and dfx ledger balance
to support ICRC-1 standard
Extend dfx ledger transfer
and dfx ledger balance
to support ICRC-1 standard.
Dependencies
Motoko
Updated Motoko to 0.14.7
Replica
Updated replica to elected commit 579b8ba3a31341f354f4ddb3d60ac44548a91bc2.
This incorporates the following executed proposals:
0.26.0
feat!: dfx start
uses --pocketic
by default
As announced dfx start
now runs PocketIC by default.
Running a local replica is still possible with --replica
, but this option will be removed in the near future.
feat: dfx will now report telemetry by default
dfx will now record information about each dfx command executed, and periodically senda
this information to a DFINITY server, by default.
For more information or to comment, please see https://forum.dfinity.org/t/dfx-telemetry-proposal-2025/41569.
You can see what data dfx collects by inspecting the file at dfx info telemetry-log-path
.
You can disable this entirely with dfx config telemetry off
or configure it to only collect
locally with dfx config telemetry local
.
feat: dfx info telemetry-log-path
Displays the path of the telemetry log file.
fix: Warning and error messages now correctly suggest dfx info security-policy
when suboptimal security policies get used
chore: updated the canister creation fee to 500B cycles
Updated the canister creation fee to 500B
cycles as documented.
chore: improve the dfx build
output
Improve the ouput of dfx build
with the canister names that were built, example as below.
$ dfx build
Building canister 'hello_backend'.
Building canister 'hello_frontend'.
Finished building canisters.
feat: Add dfx ledger approve
and dfx ledger transfer-from
subcommands
Implement dfx ledger approve
and dfx ledger transfer-from
subcommands that comply with the ICRC-2 standard.
feat: Add dfx ledger allowance
subcommand
Implement dfx ledger allowance
subcommand that complies with the ICRC-2 standard.
feat: Enable VetKD for use with --replica
- Add VetKD types and methods to management canister IDL
- The VetKD test key id
Bls12_381_G2:dfx_test_key
is now enabled when startingdfx
with--replica
.
fix: dfx will no longer try to use a nonexistent wallet after changing backend settings without --clean
After running dfx start
with different options, dfx would try to use a wallet that was created
on a previous run, which would fail. Now, dfx will create a new wallet if the settings have changed.
Dependencies
Motoko
Updated Motoko to 0.14.4
Replica
Updated replica to elected commit f6f5e0927d14886e4bd67f776ee889f31cec2364.
This incorporates the following executed proposals:
0.26.0-beta.2
feat!: dfx start
uses --pocketic
by default
As announced dfx start
now runs PocketIC by default.
Running a local replica is still possible with --replica
, but this option will be removed in the near future.
feat: dfx will now report telemetry by default
dfx will now record information about each dfx command executed, and periodically send
this information to a DFINITY server, by default.
For more information or to comment, please see https://forum.dfinity.org/t/dfx-telemetry-proposal-2025/41569.
You can see what data dfx collects by inspecting the file at dfx info telemetry-log-path
.
You can disable this entirely with dfx config telemetry off
or configure it to only collect
locally with dfx config telemetry local
.
feat: dfx info telemetry-log-path
Displays the path of the telemetry log file.
fix: Warning and error messages now correctly suggest dfx info security-policy
when suboptimal security policies get used
chore: updated the canister creation fee to 500B cycles
Updated the canister creation fee to 500B
cycles as documented.
chore: improve the dfx build
output
Improve the ouput of dfx build
with the canister names that were built, example as below.
$ dfx build
Building canister 'hello_backend'.
Building canister 'hello_frontend'.
Finished building canisters.
feat: Add dfx ledger approve
and dfx ledger transfer-from
subcommands
Implement dfx ledger approve
and dfx ledger transfer-from
subcommands that comply with the ICRC-2 standard.
feat: Add dfx ledger allowance
subcommand
Implement dfx ledger allowance
subcommand that complies with the ICRC-2 standard.
feat: Enable VetKD for use with --replica
- Add VetKD types and methods to management canister IDL
- The VetKD test key id
Bls12_381_G2:dfx_test_key
is now enabled when startingdfx
with--replica
.
fix: dfx will no longer try to use a nonexistent wallet after changing backend settings without --clean
After running dfx start
with different options, dfx would try to use a wallet that was created
on a previous run, which would fail. Now, dfx will create a new wallet if the settings have changed.
Dependencies
Motoko
Updated Motoko to 0.14.4
Replica
Updated replica to elected commit f6f5e0927d14886e4bd67f776ee889f31cec2364.
This incorporates the following executed proposals:
0.26.0-beta.1
feat!: dfx start
uses --pocketic
by default
As announced dfx start
now runs PocketIC by default.
Running a local replica is still possible with --replica
, but this option will be removed in the near future.
feat: dfx will now report telemetry by default
dfx will now record information about each dfx command executed, and periodically send
this information to a DFINITY server, by default.
For more information or to comment, please see https://forum.dfinity.org/t/dfx-telemetry-proposal-2025/41569.
You can see what data dfx collects by inspecting the file at dfx info telemetry-log-path
.
You can disable this entirely with dfx config telemetry off
or configure it to only collect
locally with dfx config telemetry local
.
feat: dfx info telemetry-log-path
Displays the path of the telemetry log file.
fix: Warning and error messages now correctly suggest dfx info security-policy
when suboptimal security policies get used
chore: updated the canister creation fee to 500B cycles
Updated the canister creation fee to 500B
cycles as documented.
chore: improve the dfx build
output
Improve the ouput of dfx build
with the canister names that were built, example as below.
$ dfx build
Building canister 'hello_backend'.
Building canister 'hello_frontend'.
Finished building canisters.
feat: Add dfx ledger approve
and dfx ledger transfer-from
subcommands
Implement dfx ledger approve
and dfx ledger transfer-from
subcommands that comply with the ICRC-2 standard.
feat: Add dfx ledger allowance
subcommand
Implement dfx ledger allowance
subcommand that complies with the ICRC-2 standard.
feat: Enable VetKD for use with --replica
- Add VetKD types and methods to management canister IDL
- The VetKD test key id
Bls12_381_G2:dfx_test_key
is now enabled when startingdfx
with--replica
.
Dependencies
Motoko
Updated Motoko to 0.14.4
Replica
Updated replica to elected commit f6f5e0927d14886e4bd67f776ee889f31cec2364.
This incorporates the following executed proposals:
0.26.0-beta.0
feat!: dfx start
uses --pocketic
by default
As announced dfx start
now runs PocketIC by default.
Running a local replica is still possible with --replica
, but this option will be removed in the near future.
feat: dfx will now report telemetry by default
dfx will now record information about each dfx command executed, and periodically send
this information to a DFINITY server, by default.
For more information or to comment, please see https://forum.dfinity.org/t/dfx-telemetry-proposal-2025/41569.
You can see what data dfx collects by inspecting the file at dfx info telemetry-log-path
.
You can disable this entirely with dfx config telemetry off
or configure it to only collect
locally with dfx config telemetry local
.
feat: dfx info telemetry-log-path
Displays the path of the telemetry log file.
fix: Warning and error messages now correctly suggest dfx info security-policy
when suboptimal security policies get used
chore: updated the canister creation fee to 500B cycles
Updated the canister creation fee to 500B
cycles as documented.
chore: improve the dfx build
output
Improve the ouput of dfx build
with the canister names that were built, example as below.
$ dfx build
Building canister 'hello_backend'.
Building canister 'hello_frontend'.
Finished building canisters.
feat: Add dfx ledger approve
and dfx ledger transfer-from
subcommands
Implement dfx ledger approve
and dfx ledger transfer-from
subcommands that comply with the ICRC-2 standard.
feat: Add dfx ledger allowance
subcommand
Implement dfx ledger allowance
subcommand that complies with the ICRC-2 standard.
feat: Enable VetKD for use with --replica
- Add VetKD types and methods to management canister IDL
- The VetKD test key id
Bls12_381_G2:dfx_test_key
is now enabled when startingdfx
with--replica
.
Dependencies
Motoko
Updated Motoko to 0.14.4
Replica
Updated replica to elected commit f6f5e0927d14886e4bd67f776ee889f31cec2364.
This incorporates the following executed proposals:
0.25.1
feat: skip_cargo_audit
flag in dfx.json to skip cargo audit
build step
fix: dfx canister install
and dfx deploy
with --no-asset-upgrade
no longer hang indefinitely when wasm is not up to date
fix: dfx
downloads .did
files for remote canisters
feat: streamlined output during asset synchronization
chore: hide dfx wallet redeem-faucet-coupon
docs: fixed description of dfx cycles balance
Dependencies
Motoko
Updated Motoko to 0.14.2
Frontend canister
- Module hash: 865eb25df5a6d857147e078bb33c727797957247f7af2635846d65c5397b36a6
- #4095
Replica
Updated replica to elected commit 2f02a660f6f17b5a78c13d9b372f74c8228f79b8.
This incorporates the following executed proposals:
0.25.1-beta.1
-
Updates to Motoko 0.14.2
-
Updated replica to non-elected commit ebb190bf1da0dba3e486b78c95cf5a3c5542e2f3. This includes X_OC_JWT and X_OC_API_KEY cors headers in PocketIC HTTP gateway (see dfinity/ic#4154).
0.25.1-beta.0
0.25.1
feat: skip_cargo_audit
flag in dfx.json to skip cargo audit
build step
fix: dfx canister install
and dfx deploy
with --no-asset-upgrade
no longer hang indefinitely when wasm is not up to date
fix: dfx
downloads .did
files for remote canisters
feat: streamlined output during asset synchronization
chore: hide dfx wallet redeem-faucet-coupon
docs: fixed description of dfx cycles balance
Dependencies
Motoko
Updated Motoko to 0.14.1
Frontend canister
- Module hash: 865eb25df5a6d857147e078bb33c727797957247f7af2635846d65c5397b36a6
- #4095
Replica
Updated replica to elected commit 2f02a660f6f17b5a78c13d9b372f74c8228f79b8.
This incorporates the following executed proposals:
0.25.0
0.25.0
fix: dfx canister install
and dfx deploy
with --no-asset-upgrade
no longer hang indefinitely when wasm is not up to date
fix: dfx
downloads .did
files for remote canisters
feat: streamlined output during asset synchronization
fix: correctly detects hyphenated Rust bin crates
fix: removes unnecessary tsc step in sveltekit build script
feat!: dfx info pocketic-config-port
Due to the incompatibility between the APIs on the replica port and the PocketIC port, dfx info replica-port
no longer works with PocketIC, and the PocketIC port is provided by a new command, dfx info pocketic-config-port
.
feat: streamlined dfx new
output
test: adds playwright tests for dfx new
project frontends
The first of a suite of baseline tests to automate testing starter projects. Makes sure that sveltekit, react, vue, and vanilla frontends are compatible with other dfx or asset canister changes.
fix: template frontends now have unsupported browser warnings
DFX's default security headers cause Safari to break when viewing local canisters. Warning messages
have been added to the frontend project templates when the page is broken that indicate to try switching
browsers.
feat: impersonating sender of requests to a local PocketIC instance
dfx canister call
, dfx canister status
, and dfx canister update-settings
take
an additional CLI argument --impersonate
to specify a principal
on behalf of which requests to a local PocketIC instance are sent.
feat: dfx canister [create|update-settings] --wasm-memory-threshold
This adds support for the WASM memory threshold, used in conjunction with --wasm-memory-limit
.
When the remaining memory until the limit falls below the threshold, the canister's
on_low_wasm_memory
handler is run.
fix: dfx deploy --by-proposal
no longer sends chunk data in ProposeCommitBatch
Recently we made dfx deploy
include some chunk data in CommitBatch, in order to streamline
deploys for smaller projects. dfx deploy
splits up larger change lists and submits them in
smaller batches, in order to remain within message and compute limits.
This change also applied to dfx deploy --by-proposal
, which submits all changes in a single
message. This made it more likely that dfx deploy --by-proposal
will fail due to exceeding
message limits.
This fix makes it so dfx deploy --by-proposal
never includes this chunk data in
ProposeCommitBatch, which will allow for more changes before hitting message limits.
feat: dfx start --pocketic
supports --force
and shared networks.
dfx start --pocketic
is now compatible with --force
and shared networks.
feat: error when using insecure identity on mainnet
This used to be a warning. A hard error can abort the command so that no insecure state will be on the mainnet.
Users can suppress this error by setting export DFX_WARNING=-mainnet_plaintext_identity
.
The warning won't display when executing commands like dfx deploy --playground
.
feat: support --replica
in dfx start
Added a flag --replica
to dfx start
. This flag currently has no effect.
Once PocketIC becomes the default for dfx start
this flag will start the replica instead.
You can use the --replica
flag already to write scripts that anticipate that change.
feat: extensions can define project templates
An extension can define one or more project templates for dfx new
to use.
These can be new templates or replace the built-in project templates.
fix: all commands with --all parameter skip remote canisters
This affects the following commands:
dfx canister delete
dfx canister deposit-cycles
dfx canister start
dfx canister status
dfx canister stop
dfx canister uninstall-code
dfx canister update-settings
dfx ledger fabricate-cycles
fix: dfx
can deploy canisters to playground networks that have Motoko EOP enabled
Canisters with Motoko's Enhanced Orthogonal Persistence feature require wasm_memory_persistence = Keep
when they get installed.
Previously, when dfx
attempted to install canisters with EOP enabled to a playground it didn't set wasm_memory_persistence
properly.
fix: custom canisters with a read-only wasm no longer fail to build with a permissions error
chore: improve dfx deploy
messages.
If users run dfx deploy
without enough cycles, show additional messages to indicate what to do next.
Error explanation:
Insufficient cycles balance to create the canister.
How to resolve the error:
Please top up your cycles balance by converting ICP to cycles like below:
'dfx cycles convert --amount=0.123'.
If users run dfx deploy --playground
but the backend is not updated with the latest frontend canister wasm
the error message will explain this properly and recommends asking for help on the forum since this can't be resolved by users.
chore: improve dfx cycles convert
messages.
If users run dfx cycles convert
without enough ICP tokens, show additional messages to indicate what to do next.
Error explanation:
Insufficient ICP balance to finish the transfer transaction.
How to resolve the error:
Please top up your ICP balance.
Your account address for receiving ICP from centralized exchanges: 8494c01329531c06254ff45dad87db806ae6ed935ad6a504cdbc00a935db7b49
(run `dfx ledger account-id` to display)
Your principal for ICP wallets and decentralized exchanges: ueuar-wxbnk-bdcsr-dnrh3-rsyq6-ffned-h64ox-vxywi-gzawf-ot4pv-sqe
(run `dfx identity get-principal` to display)
feat: Add pre-install tasks
Add pre-install tasks, which can be defined by the new pre-install
key for canister objects in dfx.json
with a command or list of commands.
chore: Warn when the 'canister_ids.json' file is first generated for persistent networks.
Warn when the 'canister_ids.json' file is first generated for persistent networks.
dfx deploy --network ic
...
test_backend canister created on network ic with canister id: j36qm-pqaaa-aaaan-qzqya-cai
WARN: The "/home/sdk/repos/test/canister_ids.json" file has been generated. Please make sure you store it correctly, e.g., submitting it to a GitHub repository.
Building canisters...
...
chore: Provides units for all fields of canister status.
Provides units for all fields of canister status.
$ dfx canister status pxmfj-jaaaa-aaaan-qmmbq-cai --ic
Canister status call result for pxmfj-jaaaa-aaaan-qmmbq-cai.
Status: Running
Controllers: uom2z-lqsqq-qbn4p-nts4l-2xjfl-oeivu-oso42-4t4jh-54ikd-ewnvi-tqe yjac5-2yaaa-aaaan-qaqka-cai
Memory allocation: 0 Bytes
Compute allocation: 0 %
Freezing threshold: 2_592_000 Seconds
Idle cycles burned per day: 20_548_135 Cycles
Memory Size: 2_010_735 Bytes
Balance: 2_985_407_678_380 Cycles
Reserved: 0 Cycles
Reserved cycles limit: 5_000_000_000_000 Cycles
Wasm memory limit: 3_221_225_472 Bytes
Wasm memory threshold: 0 Bytes
Module hash: 0x4f13cceb571483ac99a9f89afc05718c0a4ab72e9fac7d49054c0a3e05c4899b
Number of queries: 0
Instructions spent in queries: 0
Total query request payload size: 0 Bytes
Total query response payload size: 0 Bytes
Log visibility: controllers
feat!: Print error traces only in verbose (-v
) mode or if no proper error message is available
chore: Add Schnorr types and methods to management canister IDL
Dependencies
Frontend canister
fix: 'unreachable' error when trying to upgrade an asset canister with over 1GB data
The asset canister now estimates the size of the data to be serialized to stable memory,
and reserves that much space for the ValueSerializer's buffer.
Motoko
Updated Motoko to 0.13.7
Replica
Updated replica to elected commit 4ba583480e05a518aa2bcf36f5a0e48475e8edc2.
This incorporates the following executed proposals: