Skip to content

Releases: dfinity/sdk

0.30.0-beta.0

08 Oct 00:45
9f71a6b

Choose a tag to compare

0.30.0-beta.0 Pre-release
Pre-release

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 100

fix: 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

25 Sep 15:36
52b98b2

Choose a tag to compare

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

17 Sep 19:32
debfb36

Choose a tag to compare

0.29.2-beta.0 Pre-release
Pre-release

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

03 Sep 17:47
d3a8c39

Choose a tag to compare

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

26 Aug 16:19
c039bd8

Choose a tag to compare

0.29.1-beta.1 Pre-release
Pre-release

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

22 Aug 14:49
251c5c8

Choose a tag to compare

0.29.1-beta.0 Pre-release
Pre-release

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

19 Aug 18:47
3357e47

Choose a tag to compare

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:

0.29.0-beta.1

11 Aug 20:15
2e124f9

Choose a tag to compare

0.29.0-beta.1 Pre-release
Pre-release

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:

0.29.0-beta.0

31 Jul 18:19
54271c4

Choose a tag to compare

0.29.0-beta.0 Pre-release
Pre-release

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:

0.28.0

10 Jul 14:29
57bcf3e

Choose a tag to compare

⚠️ Special migration steps might be required when using MacOs with Apple Silicon. See the migration guide for more information. ⚠️

fix: deps deploy works with Canister ID out of the ranges of the pocket-ic subnets

The dfx deps deploy command didn't work when the pulled dependency's Canister ID is out of the ranges of the pocket-ic subnets.

The removed replica had one subnet to cover all subnets. While the pocket-ic can dynamically create new subnet when trying to create a canister with specified ID.

chore: update bitcoin regtest configuration to be same as the bitcoin mainnet

Update bitcoin regtest configuration to be same as the bitcoin mainnet.

fees = record {
      get_current_fee_percentiles = 10_000_000 : nat;
      get_utxos_maximum = 10_000_000_000 : nat;
      get_block_headers_cycles_per_ten_instructions = 10 : nat;
      get_current_fee_percentiles_maximum = 100_000_000 : nat;
      send_transaction_per_byte = 20_000_000 : nat;
      get_balance = 10_000_000 : nat;
      get_utxos_cycles_per_ten_instructions = 10 : nat;
      get_block_headers_base = 50_000_000 : nat;
      get_utxos_base = 50_000_000 : nat;
      get_balance_maximum = 100_000_000 : nat;
      send_transaction_base = 5_000_000_000 : nat;
      get_block_headers_maximum = 10_000_000_000 : nat;
    };

You can get the fees by get_config API on the BTC Mainnet Canister.

feat: dfx start now starts a single pocket-ic process to serve as the server and gateway

If you were using the contents of the pocket-ic-proxy-port file to determine the port for
the /http_gateway endpoint, you should instead use dfx info pocketic-config-port

feat: add dfx native support for aarch64-Darwin

Add dfx native support for aarch64-Darwin. Using it may require editing your identities. See the migration guide for more information.

Dependencies

Replica

Updated replica to commit e915efecc8af90993ccfc499721ebe826aadba60.
This incorporates the following executed proposals:

Motoko

Updated Motoko to 0.14.13

Frontend canister

Added missing fields to the asset canister .wasm: SetAssetContentArguments.last_chunk : opt blob, and HttpResponse.upgrade: opt bool

  • Module hash: 2f73b9e18b992f221a5fbab7fc59d840a9cbc461f7cfe875049f51354d23696c
  • #4289
  • #4285
  • #4286