We at DFINITY have repeatedly received requests for a cost-efficient way to test chain-key features such as threshold ECDSA (tECDSA) and threshold Schnorr (tSchnorr) on mainnet. Today, we are happy to report that we implemented a chain-key testing canister that allows for exactly that.
The chain-key testing canister is a canister smart contract that provides a fake implementation of the APIs of various chain-key-related features including tECDSA, tSchnorr, and the upcoming threshold key derivation (vetKD) for testing purposes. The shortcut that this canister takes (compared to the production APIs) is that it relies on a cryptographic key that is hard-coded into the canister, rather than relying on a key that is distributed among the subnet nodes. Note that with this, the implementation is inherently insecure, and must thus only be used for testing: see Disclaimer.
The main advantage of using this canister is to save costs during testing, because there are fees associated with using the chain-key features via the Internet Computer’s management canister APIs.
The canister is deployed on mainnet: the canister ID is vrqyr-saaaa-aaaan-qzn4q-cai
(dashboard, candid-ui). All APIs support a single key ID: insecure_test_key_1
.
For the time being, no fees are charged. If canister usage becomes excessive, we will introduce fees but aim to keep these fees significantly lower than the fees of the production APIs. The community is invited to top up the canister with cycles.
As the Github repository contains the canister’s source code, developers can also deploy their own (e.g., private) instance of the canister.
Let us know if you have any questions or comments! Happy buidling!