About CZKC
CZKC is a token that is officially classified as an electronic money token and is not a utility or asset-backed token. It is fully backed by underlying CZK held in the Reserve.
The principal relationship between the reserve and the CZKC:
\( \sum \text{Value of Reserve (Kč)} \ge \sum \text{CZKC} \)
Reserve and its onchain representation (rCZKC)
The rCZKC technical token is issued to represent the CZK-denominated reserve on the DLT. This means that for every CZKC in circulation, a corresponding amount of CZK is held in the reserve (also represented by a corresponding amount of rCZKC), thus ensuring its value and stability. A more detailed relationship between the reserve, rCZKC and CZKC is explained below:
\( \sum \text{Value of Reserve (Kč)} \ge \sum \text{rCZKC} \ge \sum \text{CZKC} \)
Further chapters provide details on the related smart contracts and services.
Who is this documentation for
This website is a technical documentation for integrators and their developers.
Chapters
The details about supported chains and the depployment addresses.
How CZKC is bridged among blockchains.
Details of the reserve onchain representation.
How CZKC can be tested.
© CZKC a.s.
Supported chains
CZKC is supported on the following chains: Ethereum, Arbitrum, Gnosis and their public testnets.
Note: Entrypoints are used for the interaction. Implementations are listed here for the completness.
Production
Entrypoints
Chain | Contract | address |
---|---|---|
Ethereum | CZKC Entrypoint | (to be published) |
Arbitrum | CZKC Entrypoint | (to be published) |
Gnosis | CZKC Entrypoint | (to be published) |
Implementations
Chain | Contract | address |
---|---|---|
Ethereum | CZKC Implementation | (to be published) |
Arbitrum | CZKC Implementation | (to be published) |
Gnosis | CZKC Implementation | (to be published) |
Public testnets
Public testnets have deployments of CZKC for the long term testing and option to try out CZKC.
Note: Testnet faucet is availale for testing CZKC tokens.
Entrypoints
Chain | Contract | address |
---|---|---|
Sepolia | CZKC Entrypoint | (to be published) |
Arbitrum | CZKC Entrypoint | (to be published) |
Chiado | CZKC Entrypoint | (to be published) |
Implementations
Chain | Contract | address |
---|---|---|
Sepolia | CZKC Implementation | (to be published) |
Arbitrum Sepolia | CZKC Implementation | (to be published) |
Chiado | CZKC Implementation | (to be published) |
Alpha testnets
Alpha deployments to either public or private testnets serve the integration testing purpose. This is used by partnering projects integrating protocols, new solutions, wallets, etc. before releasing to the market.
Note, it is not guaranteed the alpha testnet balances remain in tact.
The pilot alpha testnet contracts are deployed here:
Entrypoints
Chain | Contract | address |
---|---|---|
Sepolia | CZKC Entrypoint | (to be published) |
Arbitrum | CZKC Entrypoint | (to be published) |
Chiado | CZKC Entrypoint | (to be published) |
Implementations
Chain | Contract | address |
---|---|---|
Sepolia | CZKC Implementation | (to be published) |
Arbitrum Sepolia | CZKC Implementation | (to be published) |
Chiado | CZKC Implementation | (to be published) |
Please, contact CZKC team if you wish to integrate to alpha testnets or require own alpha testnet with CZKC deployed.
Bridging CZKC among blockchains
This section explains how CZKC interacts with different blockchains and how you can transfer tokens between them.
Supported Networks
The CZKC project is designed to work across a range of blockchains. However, the issuer supports only a specific set of these blockchains to ensure security and stability. You can find the most up-to-date list of supported blockchains on the official CZKC project website.
See supported chains - technical details.
Expanding to New Blockchains
The decision to incorporate support for new blockchains is entirely up to the issuer of CZKC. This decision follows a specific internal process that prioritizes the security of the CZKC token and ensures it aligns with all relevant regulations in the EU and the Czech Republic. While users can't demand support for a particular blockchain, they are welcome to suggest new blockchain integrations to the issuer.
Transferring CZKC Between Blockchains
You can transfer your CZKC tokens between different blockchains using independent, third-party services known as "Bridges." It's important to note that the CZKC project issuer is not involved in the creation or management of these Bridges.
Bridge Integration
To ensure smooth interaction with Bridges, the CZKC contract utilizes the xERC-20 standard on EVM-compatible blockchains. The CZKC project only supports a selected number of Bridges.
Integrating New Bridges
The decision to integrate with new Bridges is entirely at the issuer's discretion, similar to the process for adding support for new blockchains. This decision follows an internal process that prioritizes security and regulatory compliance. Users can suggest new Bridge integrations to the issuer through the contact information provided on the website.
"Burn and Mint" Mechanism
When transferring CZKC tokens between blockchains, a "burn and mint" mechanism is used. This method enhances security by reducing the risk of attacks targeting accumulated tokens, a potential vulnerability with other methods like "lock and mint." Furthermore, it reduces the risk of transfer failures that might occur due to low liquidity between the blockchains involved.
Bridging Capacity Limits
To minimize the risks associated with potential malicious activity by Bridge providers or weaknesses in their systems, the issuer sets limits on the capacity of each integrated Bridge. These limits control how many CZKC tokens can be moved between blockchains through a specific Bridge. You can find the current capacity limits for each Bridge in the publicly available CZKC contract configuration as depicted below.
These limits are not static; they are actively adjusted based on the time elapsed (t) since the last CZKC transfer. This dynamic adjustment mechanism ensures that the bridges can handle varying levels of transfer activity while maintaining overall system stability.
\( \text{CapacityIndicator}_\text{Bridge i} = \min( \Delta t \times \text{tRecoveryRate}_\text{Bridge i} , \text{TotalCapacity}_\text{Bridge i} ) \)
Bridge capacity limits functions
/**
* @notice Returns the max limit of a bridge
*
* @param _bridge The bridge we are viewing the limits of
* @return _limit The limit the bridge has
*/
function mintingMaxLimitOf(address _bridge) external view returns (uint256 _limit);
/**
* @notice Returns the max limit of a bridge
*
* @param _bridge the bridge we are viewing the limits of
* @return _limit The limit the bridge has
*/
function burningMaxLimitOf(address _bridge) external view returns (uint256 _limit);
/**
* @notice Returns the current limit of a bridge
*
* @param _bridge The bridge we are viewing the limits of
* @return _limit The limit the bridge has
*/
function mintingCurrentLimitOf(address _bridge) external view returns (uint256 _limit);
/**
* @notice Returns the current limit of a bridge
*
* @param _bridge the bridge we are viewing the limits of
* @return _limit The limit the bridge has
*/
function burningCurrentLimitOf(address _bridge) external view returns (uint256 _limit);
Reserve representation on the blockchain
The rCZKC technical token is issued to represent the CZK-denominated reserve on the DLT. This means that for every CZKC in circulation, a corresponding amount of CZK is held in the reserve (also represented by a corresponding amount of rCZKC), thus ensuring its value and stability.
rCZKC, the on-chain representation of the reserve, is exclusively controlled and transacted by the issuer.
A more detailed relationship between the reserve, rCZKC and CZKC is explained below:
\( \sum \text{Value of Reserve (Kč)} \ge \sum \text{rCZKC} \ge \sum \text{CZKC} \)
Supported chains
Reserve onchain representation (rCZKC) is deployed on the Ethereum blockchain and its testnet.
Note: Entrypoints are used for the interaction. Implementations are listed here for the completness.
Production
Entrypoint
Chain | Contract | address |
---|---|---|
Ethereum | rCZKC Entrypoint | (to be published) |
Implementation
Chain | Contract | address |
---|---|---|
Ethereum | rCZKC Implementation | (to be published) |
Public testnets
Public testnets have deployments of rCZKC for the long term testing of the behaviour between CKZC and reserve representation (rCZKC).
Entrypoint
Chain | Contract | address |
---|---|---|
Sepolia | rCZKC Entrypoint | (to be published) |
Implementation
Chain | Contract | address |
---|---|---|
Sepolia | rCZKC Implementation | (to be published) |
Alpha testnets
Alpha deployments to either public or private testnets serve the integration testing purpose. This is used by partnering projects integrating protocols, new solutions, wallets, etc. before releasing to the market.
Please, contact CZKC team if you wish to integrate to alpha testnets or require own alpha testnet with CZKC deployed.
Testnet faucet
Token Testnet Faucet: Quick Start Guide
TLDR
- Go to: https://test.czkc.cz
- Enter your testnet wallet address: 0x123...abc (or scan via QR code)
- Select "500 CZKC" or "1 Million CZKC"
- (Optional) Decide to follow CZKC on social media
- (If requesting 1 Million CZKC) Enter your email address
- Click "Send (selected amount) CZKC"
- Wait for the transaction to confirm on the block explorer.
- (If requesting 1 Million CZKC) Check your email and follow the activation link.
What is a Testnet Faucet?
In the world of blockchain development, a testnet is a simulated version of the main blockchain network, used for testing and experimentation without risking real funds. A testnet faucet is a service that provides free tokens on a testnet, allowing developers and users alike to interact with the network, and test decentralized applications (dApps) without incurring any actual costs.
How to Use the CZKC Testnet Faucet
The CZKC testnet faucet is located at: https://test.czkc.cz
It provides a way to get free CZKC tokens on the testnet for development, testing and training purposes. Here's how to use it:
1. Provide Your Address
- You will need a wallet address on the CZKC testnet. Make sure you are using a testnet wallet, NOT a mainnet wallet.
- Option 1: Manual Entry
- Enter your testnet wallet address into the input field on the faucet website
- Option 2: QR Code Scan
- Use your wallet app to generate a QR code for your testnet address
- Scan the QR code with your camera using the faucet website's QR code scanner
2. Select Token Amount
- Choose the appropriate option based on your testing needs:
- 500 CZKC: For common use cases and general interaction with the testnet
- 1 Million CZKC: For DeFi testing, including providing liquidity, yield farming, and other complex interactions
3. Additional Steps & Request Tokens
- For all requests:
- Decide whether or not to follow CZKC on social media (optional)
- For 1 Million CZKC requests:
- Provide your email address to receive an activation link
- Click the "Send (selected amount) CZKC" button.
- Some faucets may have additional steps, such as completing a captcha.
4. Wait for Confirmation
- The faucet will send the requested tokens to your address.
- Depending on the network, this may take a few seconds or minutes.
- You can usually check the status of the transaction using a block explorer for the testnet.
- For 1 Million CZKC requests:
- Check your email for the activation link and follow the instructions to complete the process.
Important Notes
- Faucets have limits on how often you can request tokens to prevent abuse.
- Testnet tokens have no real-world value. They are only for testing.
- Always double-check you are using the correct network and address to avoid losing tokens.