From 48338fbb828e95dfc1e8800161360bc358ca4d7f Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Thu, 22 Feb 2024 11:14:51 +0300 Subject: [PATCH] Bitcoin deposit fees (#248) --- docs/developers/tokens/zrc20.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/developers/tokens/zrc20.md b/docs/developers/tokens/zrc20.md index c7beabfd..7c96c675 100644 --- a/docs/developers/tokens/zrc20.md +++ b/docs/developers/tokens/zrc20.md @@ -88,6 +88,25 @@ correspond to a contract address on ZetaChain, the token will be deposited to that contract and the `onCrossChainCall` function of that contract will be called with the remaining input data as the `message`. +When depositing native gas tokens from EVM-based connected chains, there is no +additional cross-chain fee. If you send 1 token to a TSS address, you will +receive 1 ZRC-20 version of the same token on ZetaChain. + +For Bitcoin deposits, which utilize the UTXO (Unspent Transaction Output) model, +the process incurs additional fees. Unlike EVM-based chains, each deposited +Bitcoin output incurs a fee when it is spent. To address this, both the +depositor and the withdrawer share the cost of the spend. This fee is charged in +advance as a deposit fee. + +The Bitcoin deposit fee is calculated with the following formula: + +$$ +DepositFee = AverageFeeRateBlockX * GasPriceMultiplier * DepositIncurredVBytes +$$ + +Where `DepositIncurredVBytes` is fixed as `68vB` and the `GasPriceMultiplier` +defaults to 2 currently. + ## Depositing Supported ERC-20 Tokens as ZRC-20 To deposit a supported ERC-20 token to ZetaChain, use the `deposit` method of