Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
diff --git a/404.html b/404.html index a14be73bbc..d823edb43b 100644 --- a/404.html +++ b/404.html @@ -8,13 +8,13 @@ - +
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
bsc-create-validator
",id:"parameters-for-bsc-create-validator",level:3},{value:"Examples Showing Usage of bsc-create-validator
",id:"examples-showing-usage-of-bsc-create-validator",level:3},{value:"If you want to create a validator with the same operator address and self-delegator address, you only need one signature for this transaction.",id:"if-you-want-to-create-a-validator-with-the-same-operator-address-and-self-delegator-address-you-only-need-one-signature-for-this-transaction",level:4},{value:"If you want a separated self-delegator address, both self-delegator
and validator operator
need to sign this transaction.",id:"if-you-want-a-separated-self-delegator-address-both-self-delegator-and-validator-operator-need-to-sign-this-transaction",level:4},{value:"Edit BSC Validator",id:"edit-bsc-validator",level:2},{value:"Parameters for bsc-edit-validator
",id:"parameters-for-bsc-edit-validator",level:3},{value:"Examples",id:"examples",level:3},{value:"Delegate BNB",id:"delegate-bnb",level:2},{value:"Parameters for staking bsc-delegate
",id:"parameters-for-staking-bsc-delegate",level:3},{value:"Example",id:"example",level:3},{value:"Redelegate BNB",id:"redelegate-bnb",level:2},{value:"Parameters for staking bsc-redelegate
",id:"parameters-for-staking-bsc-redelegate",level:3},{value:"Undelegate BNB",id:"undelegate-bnb",level:2},{value:"Parameters for staking bsc-unbond
",id:"parameters-for-staking-bsc-unbond",level:3},{value:"Example",id:"example-1",level:3},{value:"Query side chain vaildator by operator",id:"query-side-chain-vaildator-by-operator",level:2},{value:"Parameters for staking side-validator
",id:"parameters-for-staking-side-validator",level:3},{value:"Example",id:"example-2",level:3},{value:"Query side chain delegation by delegator and operator",id:"query-side-chain-delegation-by-delegator-and-operator",level:2},{value:"Parameters for staking side-delegation",id:"parameters-for-staking-side-delegation",level:3},{value:"Example",id:"example-3",level:3},{value:"Query side chain delegations by delegator",id:"query-side-chain-delegations-by-delegator",level:2},{value:"Parameters for staking side-delegations",id:"parameters-for-staking-side-delegations",level:3},{value:"Example",id:"example-4",level:3},{value:"Query side chain unbonding delegation",id:"query-side-chain-unbonding-delegation",level:2},{value:"Parameters for staking side-unbonding-delegation
",id:"parameters-for-staking-side-unbonding-delegation",level:3},{value:"Example",id:"example-5",level:3},{value:"Query side chain unbonding delegations by delegator",id:"query-side-chain-unbonding-delegations-by-delegator",level:3},{value:"Parameters for staking side-unbonding-delegations",id:"parameters-for-staking-side-unbonding-delegations",level:4},{value:"Example",id:"example-6",level:3},{value:"Query side chain unbonding delegations by validator",id:"query-side-chain-unbonding-delegations-by-validator",level:2},{value:"Parameters for staking side-val-unbonding-delegations
",id:"parameters-for-staking-side-val-unbonding-delegations",level:3},{value:"Example",id:"example-7",level:3},{value:"Query side chain re-delegation",id:"query-side-chain-re-delegation",level:2},{value:"Parameters for staking side-redelegation
",id:"parameters-for-staking-side-redelegation",level:3},{value:"Example",id:"example-8",level:3},{value:"Query side chain re-delegations by delegator",id:"query-side-chain-re-delegations-by-delegator",level:3},{value:"Parameters for staking side-redelegations
",id:"parameters-for-staking-side-redelegations",level:4},{value:"Example",id:"example-9",level:3},{value:"Query side chain re-delegations by validator",id:"query-side-chain-re-delegations-by-validator",level:2},{value:"Parameters for staking side-val-redelegations",id:"parameters-for-staking-side-val-redelegations",level:3},{value:"Example",id:"example-10",level:3},{value:"Query side chain staking pool",id:"query-side-chain-staking-pool",level:2},{value:"Parameters for staking side-pool
",id:"parameters-for-staking-side-pool",level:3},{value:"Example",id:"example-11",level:3},{value:"Query side chain top validators",id:"query-side-chain-top-validators",level:2},{value:"Parameters for staking side-top-validators",id:"parameters-for--staking-side-top-validators",level:3},{value:"Example",id:"example-12",level:3},{value:"Query side chain validators count",id:"query-side-chain-validators-count",level:2},{value:"Parameters for staking side-validators-count",id:"parameters-for-staking-side-validators-count",level:3},{value:"Example",id:"example-13",level:3}],m={toc:s},p="wrapper";function g(e){let{components:a,...t}=e;return(0,r.kt)(p,(0,n.Z)({},m,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"cli-commands"},"CLI Commands"),(0,r.kt)("p",null,"In order to run the CLI commands related to staking and delegation, it important to first download the ",(0,r.kt)("inlineCode",{parentName:"p"},"bnbcli")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"tbnbcli")," binaries."),(0,r.kt)("h3",{id:"download-binaries"},"Download Binaries"),(0,r.kt)("h3",{id:"for-mainnet"},"For Mainnet"),(0,r.kt)("p",null,"Please download ",(0,r.kt)("inlineCode",{parentName:"p"},"bnbcli")," binary from ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/node/releases"},"here")),(0,r.kt)("h3",{id:"for-testnet"},"For Testnet"),(0,r.kt)("p",null,"Please download ",(0,r.kt)("inlineCode",{parentName:"p"},"tbnbcli")," binary from ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/node/releases"},"here")),(0,r.kt)("h2",{id:"create-bsc-validator"},"Create BSC Validator"),(0,r.kt)("h3",{id:"parameters-for-bsc-create-validator"},"Parameters for ",(0,r.kt)("inlineCode",{parentName:"h3"},"bsc-create-validator")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Parameter Name")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Example")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Explanation")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Required")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--chain-id"),(0,r.kt)("td",{parentName:"tr",align:null},"Binance-Chain-XXX"),(0,r.kt)("td",{parentName:"tr",align:null},"the chain id of binance chain"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--from"),(0,r.kt)("td",{parentName:"tr",align:null},"bnb1xxx/tbnb1xxx"),(0,r.kt)("td",{parentName:"tr",align:null},"address of private key with which to sign this tx, also be used as the validator operator address"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--address-delegator"),(0,r.kt)("td",{parentName:"tr",align:null},"bnb1xxx/tbnb1xxx"),(0,r.kt)("td",{parentName:"tr",align:null},"optional, bech32 address of the self-delegator. if not provided, --from address will be used as self-delegator."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--amount"),(0,r.kt)("td",{parentName:"tr",align:null},"2000000000000:BNB (means 20000 BNB)"),(0,r.kt)("td",{parentName:"tr",align:null},"self-delegation amount, it has 8 decimal places"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--moniker"),(0,r.kt)("td",{parentName:"tr",align:null},"myval1"),(0,r.kt)("td",{parentName:"tr",align:null},"validator name"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--identity"),(0,r.kt)("td",{parentName:"tr",align:null},"xxx"),(0,r.kt)("td",{parentName:"tr",align:null},"optional identity signature (ex. UPort or Keybase)"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--website"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.example.com"},"www.example.com")),(0,r.kt)("td",{parentName:"tr",align:null},"optional website"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--details"),(0,r.kt)("td",{parentName:"tr",align:null},"some details"),(0,r.kt)("td",{parentName:"tr",align:null},"optional details"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--commission-rate"),(0,r.kt)("td",{parentName:"tr",align:null},"80000000(that means 0.8 or 80%)"),(0,r.kt)("td",{parentName:"tr",align:null},"The initial commission rate percentage, it has 8 decimal places."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--commission-max-rate"),(0,r.kt)("td",{parentName:"tr",align:null},"95000000 (0.95 or 95%)"),(0,r.kt)("td",{parentName:"tr",align:null},"The maximum commission rate percentage, it has 8 decimal places. You can not update this rate."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--commission-max-change-rate"),(0,r.kt)("td",{parentName:"tr",align:null},"3000000 (0.03 or 3%)"),(0,r.kt)("td",{parentName:"tr",align:null},"The maximum commission change rate percentage (per day). You can not update this rate."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-chain-id"),(0,r.kt)("td",{parentName:"tr",align:null},"chapel"),(0,r.kt)("td",{parentName:"tr",align:null},"chain-id of the side chain the validator belongs to"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-cons-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"0x1234abcd"),(0,r.kt)("td",{parentName:"tr",align:null},"consensus address of the validator on side chain, please use hex format prefixed with 0x"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-vote-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"0x1234abcd"),(0,r.kt)("td",{parentName:"tr",align:null},"vote pub key of the validator on side chain, please use hex format prefixed with 0x, supported after BEP126"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-fee-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"0xabcd1234"),(0,r.kt)("td",{parentName:"tr",align:null},"address that validator collects fee rewards on side chain, please use hex format prefixed with 0x."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--home"),(0,r.kt)("td",{parentName:"tr",align:null},"/path/to/cli_home"),(0,r.kt)("td",{parentName:"tr",align:null},"home directory of bnbcli data and config, default to \u201c~/.bnbcli\u201d"),(0,r.kt)("td",{parentName:"tr",align:null},"No")))),(0,r.kt)("p",null,"Some address parameters we need to highlight here:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Field Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Usage"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"DelegatorAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"Self delegator address. For BC, this address also used to collect fees.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ValidatorAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"validator operator\u2019s address, used in governance ops like voting.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SideConsAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"block producer\u2019s address on side chain, i.e. consensus address. BC has another parameter named ",(0,r.kt)("inlineCode",{parentName:"td"},"PubKey"),", here SideConsAddr replaced that for BSC. Only BSC validators need this parameter.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SideVoteAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"A bls public key. It's used by validators to vote for blocks, so the BSC chain can finalize blocks within two block periods in normal. \uff5c")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SideFeeAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"fees are collected in this address on BSC, Only BSC validators need this parameter. Due to different token units, there are some BNB left as dust when sending block rewards from BNB Smart Chain to BNB Beacon Chain. Those BNB will be sent to fee address.")))),(0,r.kt)("h3",{id:"examples-showing-usage-of-bsc-create-validator"},"Examples Showing Usage of ",(0,r.kt)("inlineCode",{parentName:"h3"},"bsc-create-validator")),(0,r.kt)("h4",{id:"if-you-want-to-create-a-validator-with-the-same-operator-address-and-self-delegator-address-you-only-need-one-signature-for-this-transaction"},"If you want to create a validator with the same operator address and self-delegator address, you only need one signature for this transaction."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'## mainnet\nbnbcli staking bsc-create-validator --chain-id Binance-Chain-Tigris --from bnb1tfh30c67mkzfz06as2hk0756mgdx8mgypu7ajl --amount 1000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "[www.example.](http://www.binance.org)com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id bsc --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli\n\n## testnet\ntbnbcli staking bsc-create-validator --chain-id Binance-Chain-Ganges --from tbnb1tfh30c67mkzfz06as2hk0756mgdx8mgypu7ajl --amount 2000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "[www.example.](http://www.binance.org)com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id chapel --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli\n')),(0,r.kt)("h4",{id:"if-you-want-a-separated-self-delegator-address-both-self-delegator-and-validator-operator-need-to-sign-this-transaction"},"If you want a separated self-delegator address, both ",(0,r.kt)("inlineCode",{parentName:"h4"},"self-delegator")," and ",(0,r.kt)("inlineCode",{parentName:"h4"},"validator operator")," need to sign this transaction."),(0,r.kt)("p",null,"Here we need to use another two commands to support multiple signatures."),(0,r.kt)("p",null,"a. Use the following commands appended with a parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"**--generate-only**")," and save the result to a json file which would be used to be signed."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'## mainnet\nbnbcli staking bsc-create-validator --chain-id Binance-Chain-Tigris --from {validator-operator-address} --address-delegator {delegator-address} --amount 5000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "www.example.com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id bsc --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli --generate-only > unsigned.json\n\n## testnet\ntbnbcli staking bsc-create-validator --chain-id Binance-Chain-Ganges --from {validator-operator-address} --address-delegator {delegator-address} --amount 5000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "www.example.com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id chapel --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli --generate-only > unsigned.json\n')),(0,r.kt)("p",null,"b. both validator operator(--from) and self-delegator(--address-delegator) use ",(0,r.kt)("inlineCode",{parentName:"p"},"**bnbcli sign**")," command to sign the file from a)."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Delegator")," address need to sign ",(0,r.kt)("inlineCode",{parentName:"p"},"unsigned.json")," first"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Online Mode")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"## mainnet\n./bnbcli sign unsigned.json --from {delegator-address} --node dataseed4.bnbchain.org:80 --chain-id Binance-Chain-Tigris >> delegator-signed.json\n\n## testnet\n./tbnbcli sign unsigned.json --from {delegator-address} --node data-seed-pre-0-s3.bnbchain.org:80 --chain-id Binance-Chain-Ganges >> delegator-signed.json\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Offline Mode")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"## mainnet\n./bnbcli sign unsigned.json --account-number bsc-create-validator
",id:"parameters-for-bsc-create-validator",level:3},{value:"Examples Showing Usage of bsc-create-validator
",id:"examples-showing-usage-of-bsc-create-validator",level:3},{value:"If you want to create a validator with the same operator address and self-delegator address, you only need one signature for this transaction.",id:"if-you-want-to-create-a-validator-with-the-same-operator-address-and-self-delegator-address-you-only-need-one-signature-for-this-transaction",level:4},{value:"If you want a separated self-delegator address, both self-delegator
and validator operator
need to sign this transaction.",id:"if-you-want-a-separated-self-delegator-address-both-self-delegator-and-validator-operator-need-to-sign-this-transaction",level:4},{value:"Edit BSC Validator",id:"edit-bsc-validator",level:2},{value:"Parameters for bsc-edit-validator
",id:"parameters-for-bsc-edit-validator",level:3},{value:"Examples",id:"examples",level:3},{value:"Delegate BNB",id:"delegate-bnb",level:2},{value:"Parameters for staking bsc-delegate
",id:"parameters-for-staking-bsc-delegate",level:3},{value:"Example",id:"example",level:3},{value:"Redelegate BNB",id:"redelegate-bnb",level:2},{value:"Parameters for staking bsc-redelegate
",id:"parameters-for-staking-bsc-redelegate",level:3},{value:"Undelegate BNB",id:"undelegate-bnb",level:2},{value:"Parameters for staking bsc-unbond
",id:"parameters-for-staking-bsc-unbond",level:3},{value:"Example",id:"example-1",level:3},{value:"Query side chain vaildator by operator",id:"query-side-chain-vaildator-by-operator",level:2},{value:"Parameters for staking side-validator
",id:"parameters-for-staking-side-validator",level:3},{value:"Example",id:"example-2",level:3},{value:"Query side chain delegation by delegator and operator",id:"query-side-chain-delegation-by-delegator-and-operator",level:2},{value:"Parameters for staking side-delegation",id:"parameters-for-staking-side-delegation",level:3},{value:"Example",id:"example-3",level:3},{value:"Query side chain delegations by delegator",id:"query-side-chain-delegations-by-delegator",level:2},{value:"Parameters for staking side-delegations",id:"parameters-for-staking-side-delegations",level:3},{value:"Example",id:"example-4",level:3},{value:"Query side chain unbonding delegation",id:"query-side-chain-unbonding-delegation",level:2},{value:"Parameters for staking side-unbonding-delegation
",id:"parameters-for-staking-side-unbonding-delegation",level:3},{value:"Example",id:"example-5",level:3},{value:"Query side chain unbonding delegations by delegator",id:"query-side-chain-unbonding-delegations-by-delegator",level:3},{value:"Parameters for staking side-unbonding-delegations",id:"parameters-for-staking-side-unbonding-delegations",level:4},{value:"Example",id:"example-6",level:3},{value:"Query side chain unbonding delegations by validator",id:"query-side-chain-unbonding-delegations-by-validator",level:2},{value:"Parameters for staking side-val-unbonding-delegations
",id:"parameters-for-staking-side-val-unbonding-delegations",level:3},{value:"Example",id:"example-7",level:3},{value:"Query side chain re-delegation",id:"query-side-chain-re-delegation",level:2},{value:"Parameters for staking side-redelegation
",id:"parameters-for-staking-side-redelegation",level:3},{value:"Example",id:"example-8",level:3},{value:"Query side chain re-delegations by delegator",id:"query-side-chain-re-delegations-by-delegator",level:3},{value:"Parameters for staking side-redelegations
",id:"parameters-for-staking-side-redelegations",level:4},{value:"Example",id:"example-9",level:3},{value:"Query side chain re-delegations by validator",id:"query-side-chain-re-delegations-by-validator",level:2},{value:"Parameters for staking side-val-redelegations",id:"parameters-for-staking-side-val-redelegations",level:3},{value:"Example",id:"example-10",level:3},{value:"Query side chain staking pool",id:"query-side-chain-staking-pool",level:2},{value:"Parameters for staking side-pool
",id:"parameters-for-staking-side-pool",level:3},{value:"Example",id:"example-11",level:3},{value:"Query side chain top validators",id:"query-side-chain-top-validators",level:2},{value:"Parameters for staking side-top-validators",id:"parameters-for--staking-side-top-validators",level:3},{value:"Example",id:"example-12",level:3},{value:"Query side chain validators count",id:"query-side-chain-validators-count",level:2},{value:"Parameters for staking side-validators-count",id:"parameters-for-staking-side-validators-count",level:3},{value:"Example",id:"example-13",level:3}],m={toc:s},p="wrapper";function g(e){let{components:a,...t}=e;return(0,r.kt)(p,(0,n.Z)({},m,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"cli-commands"},"CLI Commands"),(0,r.kt)("p",null,"In order to run the CLI commands related to staking and delegation, it important to first download the ",(0,r.kt)("inlineCode",{parentName:"p"},"bnbcli")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"tbnbcli")," binaries."),(0,r.kt)("h3",{id:"download-binaries"},"Download Binaries"),(0,r.kt)("h3",{id:"for-mainnet"},"For Mainnet"),(0,r.kt)("p",null,"Please download ",(0,r.kt)("inlineCode",{parentName:"p"},"bnbcli")," binary from ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/node/releases"},"here")),(0,r.kt)("h3",{id:"for-testnet"},"For Testnet"),(0,r.kt)("p",null,"Please download ",(0,r.kt)("inlineCode",{parentName:"p"},"tbnbcli")," binary from ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/node/releases"},"here")),(0,r.kt)("h2",{id:"create-bsc-validator"},"Create BSC Validator"),(0,r.kt)("h3",{id:"parameters-for-bsc-create-validator"},"Parameters for ",(0,r.kt)("inlineCode",{parentName:"h3"},"bsc-create-validator")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Parameter Name")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Example")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Explanation")),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"th"},"Required")))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--chain-id"),(0,r.kt)("td",{parentName:"tr",align:null},"Binance-Chain-XXX"),(0,r.kt)("td",{parentName:"tr",align:null},"the chain id of binance chain"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--from"),(0,r.kt)("td",{parentName:"tr",align:null},"bnb1xxx/tbnb1xxx"),(0,r.kt)("td",{parentName:"tr",align:null},"address of private key with which to sign this tx, also be used as the validator operator address"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--address-delegator"),(0,r.kt)("td",{parentName:"tr",align:null},"bnb1xxx/tbnb1xxx"),(0,r.kt)("td",{parentName:"tr",align:null},"optional, bech32 address of the self-delegator. if not provided, --from address will be used as self-delegator."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--amount"),(0,r.kt)("td",{parentName:"tr",align:null},"2000000000000:BNB (means 20000 BNB)"),(0,r.kt)("td",{parentName:"tr",align:null},"self-delegation amount, it has 8 decimal places"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--moniker"),(0,r.kt)("td",{parentName:"tr",align:null},"myval1"),(0,r.kt)("td",{parentName:"tr",align:null},"validator name"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--identity"),(0,r.kt)("td",{parentName:"tr",align:null},"xxx"),(0,r.kt)("td",{parentName:"tr",align:null},"optional identity signature (ex. UPort or Keybase)"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--website"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.example.com"},"www.example.com")),(0,r.kt)("td",{parentName:"tr",align:null},"optional website"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--details"),(0,r.kt)("td",{parentName:"tr",align:null},"some details"),(0,r.kt)("td",{parentName:"tr",align:null},"optional details"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--commission-rate"),(0,r.kt)("td",{parentName:"tr",align:null},"80000000(that means 0.8 or 80%)"),(0,r.kt)("td",{parentName:"tr",align:null},"The initial commission rate percentage, it has 8 decimal places."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--commission-max-rate"),(0,r.kt)("td",{parentName:"tr",align:null},"95000000 (0.95 or 95%)"),(0,r.kt)("td",{parentName:"tr",align:null},"The maximum commission rate percentage, it has 8 decimal places. You can not update this rate."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--commission-max-change-rate"),(0,r.kt)("td",{parentName:"tr",align:null},"3000000 (0.03 or 3%)"),(0,r.kt)("td",{parentName:"tr",align:null},"The maximum commission change rate percentage (per day). You can not update this rate."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-chain-id"),(0,r.kt)("td",{parentName:"tr",align:null},"chapel"),(0,r.kt)("td",{parentName:"tr",align:null},"chain-id of the side chain the validator belongs to"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-cons-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"0x1234abcd"),(0,r.kt)("td",{parentName:"tr",align:null},"consensus address of the validator on side chain, please use hex format prefixed with 0x"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-vote-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"0x1234abcd"),(0,r.kt)("td",{parentName:"tr",align:null},"vote pub key of the validator on side chain, please use hex format prefixed with 0x, supported after BEP126"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--side-fee-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"0xabcd1234"),(0,r.kt)("td",{parentName:"tr",align:null},"address that validator collects fee rewards on side chain, please use hex format prefixed with 0x."),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"--home"),(0,r.kt)("td",{parentName:"tr",align:null},"/path/to/cli_home"),(0,r.kt)("td",{parentName:"tr",align:null},"home directory of bnbcli data and config, default to \u201c~/.bnbcli\u201d"),(0,r.kt)("td",{parentName:"tr",align:null},"No")))),(0,r.kt)("p",null,"Some address parameters we need to highlight here:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Field Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Usage"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"DelegatorAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"Self delegator address. For BC, this address also used to collect fees.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ValidatorAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"validator operator\u2019s address, used in governance ops like voting.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SideConsAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"block producer\u2019s address on side chain, i.e. consensus address. BC has another parameter named ",(0,r.kt)("inlineCode",{parentName:"td"},"PubKey"),", here SideConsAddr replaced that for BSC. Only BSC validators need this parameter.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SideVoteAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"A bls public key. It's used by validators to vote for blocks, so the BSC chain can finalize blocks within two block periods in normal. \uff5c")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SideFeeAddr"),(0,r.kt)("td",{parentName:"tr",align:null},"fees are collected in this address on BSC, Only BSC validators need this parameter. Due to different token units, there are some BNB left as dust when sending block rewards from BNB Smart Chain to BNB Beacon Chain. Those BNB will be sent to fee address.")))),(0,r.kt)("h3",{id:"examples-showing-usage-of-bsc-create-validator"},"Examples Showing Usage of ",(0,r.kt)("inlineCode",{parentName:"h3"},"bsc-create-validator")),(0,r.kt)("h4",{id:"if-you-want-to-create-a-validator-with-the-same-operator-address-and-self-delegator-address-you-only-need-one-signature-for-this-transaction"},"If you want to create a validator with the same operator address and self-delegator address, you only need one signature for this transaction."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'## mainnet\nbnbcli staking bsc-create-validator --chain-id Binance-Chain-Tigris --from bnb1tfh30c67mkzfz06as2hk0756mgdx8mgypu7ajl --amount 1000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "[www.example.](http://www.binance.org)com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id bsc --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli\n\n## testnet\ntbnbcli staking bsc-create-validator --chain-id Binance-Chain-Ganges --from tbnb1tfh30c67mkzfz06as2hk0756mgdx8mgypu7ajl --amount 2000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "[www.example.](http://www.binance.org)com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id chapel --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli\n')),(0,r.kt)("h4",{id:"if-you-want-a-separated-self-delegator-address-both-self-delegator-and-validator-operator-need-to-sign-this-transaction"},"If you want a separated self-delegator address, both ",(0,r.kt)("inlineCode",{parentName:"h4"},"self-delegator")," and ",(0,r.kt)("inlineCode",{parentName:"h4"},"validator operator")," need to sign this transaction."),(0,r.kt)("p",null,"Here we need to use another two commands to support multiple signatures."),(0,r.kt)("p",null,"a. Use the following commands appended with a parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"**--generate-only**")," and save the result to a json file which would be used to be signed."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'## mainnet\nbnbcli staking bsc-create-validator --chain-id Binance-Chain-Tigris --from {validator-operator-address} --address-delegator {delegator-address} --amount 5000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "www.example.com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id bsc --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli --generate-only > unsigned.json\n\n## testnet\ntbnbcli staking bsc-create-validator --chain-id Binance-Chain-Ganges --from {validator-operator-address} --address-delegator {delegator-address} --amount 5000000000000:BNB --moniker bsc_v1 --identity "xxx" --website "www.example.com" --details "bsc validator node 1" --commission-rate 80000000 --commission-max-rate 95000000 --commission-max-change-rate 3000000 --side-chain-id chapel --side-cons-addr 0x9B24Ee0BfBf708b541fB65b6087D6e991a0D11A8 --side-fee-addr 0x5885d2A27Bd4c6D111B83Bc3fC359eD951E8E6F8 --side-vote-addr 0x85e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588 --home ~/home_cli --generate-only > unsigned.json\n')),(0,r.kt)("p",null,"b. both validator operator(--from) and self-delegator(--address-delegator) use ",(0,r.kt)("inlineCode",{parentName:"p"},"**bnbcli sign**")," command to sign the file from a)."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Delegator")," address need to sign ",(0,r.kt)("inlineCode",{parentName:"p"},"unsigned.json")," first"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Online Mode")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"## mainnet\n./bnbcli sign unsigned.json --from {delegator-address} --node dataseed4.bnbchain.org:80 --chain-id Binance-Chain-Tigris >> delegator-signed.json\n\n## testnet\n./tbnbcli sign unsigned.json --from {delegator-address} --node data-seed-pre-0-s3.bnbchain.org:80 --chain-id Binance-Chain-Ganges >> delegator-signed.json\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Offline Mode")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"## mainnet\n./bnbcli sign unsigned.json --account-number HTLT
function From Ethereum",id:"2-call-htlt-function-from-ethereum",level:4},{value:"3. Deputy Call HTLT on BNB Beacon Chain",id:"3-deputy-call-htlt-on-bnb-beacon-chain",level:4},{value:"4. Claim HTLT on BNB Beacon Chain",id:"4-claim-htlt-on-bnb-beacon-chain",level:4},{value:"5. Deputy Claim ERC20 Token",id:"5-deputy-claim-erc20-token",level:4},{value:"6. Demo for Client APP: swap erc20 to bep2",id:"6-demo-for-client-app-swap-erc20-to-bep2",level:4},{value:"Swap Tokens from BNB Beacon Chain to Ethereum",id:"swap-tokens-from-bnb-beacon-chain--to-ethereum",level:3},{value:"1. Send HTLT
Transaction from BNB Beacon Chain",id:"1-send-htlt-transaction-from-bnb-beacon-chain",level:4},{value:"2. Deputy Approve Tokens",id:"2--deputy-approve-tokens",level:4},{value:"3. Deputy Send HTLT on Ethereum",id:"3-deputy-send-htlt-on-ethereum",level:4},{value:"4. Claim ERC20 Tokens on Ethereum",id:"4-claim-erc20-tokens-on-ethereum",level:4},{value:"5. Deputy Claim on BNB Beacon Chain",id:"5-deputy-claim-on-bnb-beacon-chain",level:4},{value:"6. Demo for Client APP: swap bep2 to erc20",id:"6-demo-for-client-app-swap-bep2-to-erc20",level:4},{value:"Swap between Several BEP2 tokens",id:"swap-between-several-bep2-tokens",level:3},{value:"Swap between Several BEP2 tokens fails",id:"swap-between-several-bep2-tokens-fails",level:3}],d={toc:o},u="wrapper";function m(e){let{components:t,...s}=e;return(0,r.kt)(u,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"cross-chain-atomic-swaps"},"Cross-chain Atomic Swaps"),(0,r.kt)("h2",{id:"atomic-swap"},"Atomic Swap"),(0,r.kt)("p",null,"The problem of an atomic swap is one where (at least) two parties, Alice and Bob, own coins, and want to exchange them without having to trust a third party (centralized exchange)."),(0,r.kt)("p",null,"A non-atomic trivial solution would have Alice send her coins to Bob, and then have Bob send other coins to Alice - but Bob has the option of going back on his end of the bargain and simply not following through with the protocol, ending up with both sets of coins."),(0,r.kt)("p",null,"Atomic swaps can be used for trading between BEP2 tokens, or for trading across different blockchains."),(0,r.kt)("h2",{id:"hash-timer-locked-contract"},"Hash Timer Locked Contract"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts"},"HTLC")," has been used for Atomic Swap and cross payment channel for a few years on Bitcoin and its variant blockchains, and also Ethereum. This BEP defines native transactions to support HTLC on BNB Beacon Chain , and also proposes the standard infrastructure and procedure to use HTLC for inter-chain atomic swap to easily create and use pegged token, which is called ",(0,r.kt)("inlineCode",{parentName:"p"},"Atomic Peg"),"."),(0,r.kt)("h2",{id:"htlc-on-bnb-beacon-chain"},"HTLC on BNB Beacon Chain"),(0,r.kt)("p",null,"As explained in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/BEPs/blob/master/BEP3.md"},"BEP3"),", Hash Timer Locked Contract(HTLC) has been used for Atomic Swap and cross payment channels between different blockchains. BEP3 defines native transactions to support HTLC on BNB Beacon Chain and also proposes the standard infrastructure and procedure to use HTLC for inter-chain atomic swap to easily create and use pegged token.\nDuring the swap process, the related fund will be locked to a purely-code-controlled escrow account.\nA purely-code-controlled escrow account is a kind of account which is derived from a hard-coded string in BNB Beacon Chain protocol. This kind of account has no its own private key and it's only controled by code in protocol. The code for calculating escrow account is the same as how it's done in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/cosmos/cosmos-sdk/blob/82a2c5d6d86ffd761f0162b93f0aaa57b7f66fe7/x/supply/internal/types/account.go#L40"},"cosmos-sdk"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'AtomicSwapCoinsAccAddr = sdk.AccAddress(crypto.AddressHash([]byte("BinanceChainAtomicSwapCoins")))\n')),(0,r.kt)("p",null,"The account for mainnet is: ",(0,r.kt)("strong",{parentName:"p"},"bnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4f8ge93u")," and the account for testnet is: ",(0,r.kt)("strong",{parentName:"p"},"tbnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4ffasp3d"),". Once the swap is claimed or refunded, the fund will be transferred from the purely-code-controlled escrow account to client accounts."),(0,r.kt)("h3",{id:"hash-timer-locked-transfer"},"Hash Timer Locked Transfer"),(0,r.kt)("p",null,"Hash Timer Locked Transfer (HTLT) is a new transaction type on BNB Beacon Chain , to serve as HTLC in the first step of Atomic Swap,"),(0,r.kt)("h4",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Optional"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"From"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Sender address, where the asset is from"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Receiver address, where the asset is to, if the proper condition meets."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"sender-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"RandomNumberHash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"hash of a random number and timestamp, based on SHA256. If left out, a random value will be generated"),(0,r.kt)("td",{parentName:"tr",align:null},"True")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"Supposed to be the time of sending transaction, counted by second. It should be identical to the one in swap contract. If left out, current timestamp will be used."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OutAmount"),(0,r.kt)("td",{parentName:"tr",align:null},"Coins"),(0,r.kt)("td",{parentName:"tr",align:null},"similar to the Coins in the original Transfer defined in BEP2, assets to swap out"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ExpectedIncome"),(0,r.kt)("td",{parentName:"tr",align:null},"string"),(0,r.kt)("td",{parentName:"tr",align:null},'Expected income from swap counter party, example: "100:BNB" or "100:BNB,10000:BTCB-1DE" The amount needs to be bumped by e^8'),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HeightSpan"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"number of blocks to wait before the asset may be returned to From if not claimed via Random. The number must be larger than or equal to 360 (>2 minutes), and smaller than 518400 (< 48 hours)"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CrossChain"),(0,r.kt)("td",{parentName:"tr",align:null},"bool"),(0,r.kt)("td",{parentName:"tr",align:null},"Specify if the HTLT is for cross chain atomic swap"),(0,r.kt)("td",{parentName:"tr",align:null},"True, the default value is False")))),(0,r.kt)("h4",{id:"outputs"},"Outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number hash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Swap ID"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"examples"},"Examples"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Swap between BEP2 tokens")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"On ",(0,r.kt)("em",{parentName:"li"},"testnet"),":")),(0,r.kt)("p",null,"Command line"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"./tbnbcli token HTLT --recipient-addr HTLT
function From Ethereum",id:"2-call-htlt-function-from-ethereum",level:4},{value:"3. Deputy Call HTLT on BNB Beacon Chain",id:"3-deputy-call-htlt-on-bnb-beacon-chain",level:4},{value:"4. Claim HTLT on BNB Beacon Chain",id:"4-claim-htlt-on-bnb-beacon-chain",level:4},{value:"5. Deputy Claim ERC20 Token",id:"5-deputy-claim-erc20-token",level:4},{value:"6. Demo for Client APP: swap erc20 to bep2",id:"6-demo-for-client-app-swap-erc20-to-bep2",level:4},{value:"Swap Tokens from BNB Beacon Chain to Ethereum",id:"swap-tokens-from-bnb-beacon-chain--to-ethereum",level:3},{value:"1. Send HTLT
Transaction from BNB Beacon Chain",id:"1-send-htlt-transaction-from-bnb-beacon-chain",level:4},{value:"2. Deputy Approve Tokens",id:"2--deputy-approve-tokens",level:4},{value:"3. Deputy Send HTLT on Ethereum",id:"3-deputy-send-htlt-on-ethereum",level:4},{value:"4. Claim ERC20 Tokens on Ethereum",id:"4-claim-erc20-tokens-on-ethereum",level:4},{value:"5. Deputy Claim on BNB Beacon Chain",id:"5-deputy-claim-on-bnb-beacon-chain",level:4},{value:"6. Demo for Client APP: swap bep2 to erc20",id:"6-demo-for-client-app-swap-bep2-to-erc20",level:4},{value:"Swap between Several BEP2 tokens",id:"swap-between-several-bep2-tokens",level:3},{value:"Swap between Several BEP2 tokens fails",id:"swap-between-several-bep2-tokens-fails",level:3}],d={toc:o},u="wrapper";function m(e){let{components:t,...s}=e;return(0,r.kt)(u,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"cross-chain-atomic-swaps"},"Cross-chain Atomic Swaps"),(0,r.kt)("h2",{id:"atomic-swap"},"Atomic Swap"),(0,r.kt)("p",null,"The problem of an atomic swap is one where (at least) two parties, Alice and Bob, own coins, and want to exchange them without having to trust a third party (centralized exchange)."),(0,r.kt)("p",null,"A non-atomic trivial solution would have Alice send her coins to Bob, and then have Bob send other coins to Alice - but Bob has the option of going back on his end of the bargain and simply not following through with the protocol, ending up with both sets of coins."),(0,r.kt)("p",null,"Atomic swaps can be used for trading between BEP2 tokens, or for trading across different blockchains."),(0,r.kt)("h2",{id:"hash-timer-locked-contract"},"Hash Timer Locked Contract"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts"},"HTLC")," has been used for Atomic Swap and cross payment channel for a few years on Bitcoin and its variant blockchains, and also Ethereum. This BEP defines native transactions to support HTLC on BNB Beacon Chain , and also proposes the standard infrastructure and procedure to use HTLC for inter-chain atomic swap to easily create and use pegged token, which is called ",(0,r.kt)("inlineCode",{parentName:"p"},"Atomic Peg"),"."),(0,r.kt)("h2",{id:"htlc-on-bnb-beacon-chain"},"HTLC on BNB Beacon Chain"),(0,r.kt)("p",null,"As explained in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/BEPs/blob/master/BEP3.md"},"BEP3"),", Hash Timer Locked Contract(HTLC) has been used for Atomic Swap and cross payment channels between different blockchains. BEP3 defines native transactions to support HTLC on BNB Beacon Chain and also proposes the standard infrastructure and procedure to use HTLC for inter-chain atomic swap to easily create and use pegged token.\nDuring the swap process, the related fund will be locked to a purely-code-controlled escrow account.\nA purely-code-controlled escrow account is a kind of account which is derived from a hard-coded string in BNB Beacon Chain protocol. This kind of account has no its own private key and it's only controled by code in protocol. The code for calculating escrow account is the same as how it's done in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/cosmos/cosmos-sdk/blob/82a2c5d6d86ffd761f0162b93f0aaa57b7f66fe7/x/supply/internal/types/account.go#L40"},"cosmos-sdk"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'AtomicSwapCoinsAccAddr = sdk.AccAddress(crypto.AddressHash([]byte("BinanceChainAtomicSwapCoins")))\n')),(0,r.kt)("p",null,"The account for mainnet is: ",(0,r.kt)("strong",{parentName:"p"},"bnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4f8ge93u")," and the account for testnet is: ",(0,r.kt)("strong",{parentName:"p"},"tbnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4ffasp3d"),". Once the swap is claimed or refunded, the fund will be transferred from the purely-code-controlled escrow account to client accounts."),(0,r.kt)("h3",{id:"hash-timer-locked-transfer"},"Hash Timer Locked Transfer"),(0,r.kt)("p",null,"Hash Timer Locked Transfer (HTLT) is a new transaction type on BNB Beacon Chain , to serve as HTLC in the first step of Atomic Swap,"),(0,r.kt)("h4",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Optional"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"From"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Sender address, where the asset is from"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Receiver address, where the asset is to, if the proper condition meets."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"sender-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"RandomNumberHash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"hash of a random number and timestamp, based on SHA256. If left out, a random value will be generated"),(0,r.kt)("td",{parentName:"tr",align:null},"True")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"Supposed to be the time of sending transaction, counted by second. It should be identical to the one in swap contract. If left out, current timestamp will be used."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OutAmount"),(0,r.kt)("td",{parentName:"tr",align:null},"Coins"),(0,r.kt)("td",{parentName:"tr",align:null},"similar to the Coins in the original Transfer defined in BEP2, assets to swap out"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ExpectedIncome"),(0,r.kt)("td",{parentName:"tr",align:null},"string"),(0,r.kt)("td",{parentName:"tr",align:null},'Expected income from swap counter party, example: "100:BNB" or "100:BNB,10000:BTCB-1DE" The amount needs to be bumped by e^8'),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HeightSpan"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"number of blocks to wait before the asset may be returned to From if not claimed via Random. The number must be larger than or equal to 360 (>2 minutes), and smaller than 518400 (< 48 hours)"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CrossChain"),(0,r.kt)("td",{parentName:"tr",align:null},"bool"),(0,r.kt)("td",{parentName:"tr",align:null},"Specify if the HTLT is for cross chain atomic swap"),(0,r.kt)("td",{parentName:"tr",align:null},"True, the default value is False")))),(0,r.kt)("h4",{id:"outputs"},"Outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number hash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Swap ID"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"examples"},"Examples"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Swap between BEP2 tokens")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"On ",(0,r.kt)("em",{parentName:"li"},"testnet"),":")),(0,r.kt)("p",null,"Command line"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"./tbnbcli token HTLT --recipient-addr HTLT
function From Ethereum",id:"2-call-htlt-function-from-ethereum",level:4},{value:"3. Deputy Call HTLT on BNB Beacon Chain",id:"3-deputy-call-htlt-on-bnb-beacon-chain",level:4},{value:"4. Claim HTLT on BNB Beacon Chain",id:"4-claim-htlt-on-bnb-beacon-chain",level:4},{value:"5. Deputy Claim ERC20 Token",id:"5-deputy-claim-erc20-token",level:4},{value:"6. Demo for Client APP: swap erc20 to bep2",id:"6-demo-for-client-app-swap-erc20-to-bep2",level:4},{value:"Swap Tokens from BNB Beacon Chain to Ethereum",id:"swap-tokens-from-bnb-beacon-chain-to-ethereum",level:3},{value:"1. Send HTLT
Transaction from BNB Beacon Chain",id:"1-send-htlt-transaction-from-bnb-beacon-chain",level:4},{value:"2. Deputy Approve Tokens",id:"2--deputy-approve-tokens",level:4},{value:"3. Deputy Send HTLT on Ethereum",id:"3-deputy-send-htlt-on-ethereum",level:4},{value:"4. Claim ERC20 Tokens on Ethereum",id:"4-claim-erc20-tokens-on-ethereum",level:4},{value:"5. Deputy Claim on BNB Beacon Chain",id:"5-deputy-claim-on-bnb-beacon-chain",level:4},{value:"6. Demo for Client APP: swap bep2 to erc20",id:"6-demo-for-client-app-swap-bep2-to-erc20",level:4},{value:"Swap between Several BEP2 tokens",id:"swap-between-several-bep2-tokens",level:3},{value:"Swap between Several BEP2 tokens fails",id:"swap-between-several-bep2-tokens-fails",level:3}],d={toc:o},u="wrapper";function m(e){let{components:t,...s}=e;return(0,r.kt)(u,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"introduction"},"Introduction"),(0,r.kt)("p",null,"As explained in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/BEPs/blob/master/BEP3.md"},"BEP3"),", Hash Timer Locked Contract(HTLC) has been used for Atomic Swap and cross payment channels between different blockchains. BEP3 defines native transactions to support HTLC on BNB Beacon Chain and also proposes the standard infrastructure and procedure to use HTLC for inter-chain atomic swap to easily create and use pegged token.\nDuring the swap process, the related fund will be locked to a purely-code-controlled escrow account.\nA purely-code-controlled escrow account is a kind of account which is derived from a hard-coded string in BNB Beacon Chain protocol. This kind of account doesn't have its own private key and it's only controlled by code of the protocol. The code for calculating escrow account is the same that is used in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/cosmos/cosmos-sdk/blob/82a2c5d6d86ffd761f0162b93f0aaa57b7f66fe7/x/supply/internal/types/account.go#L40"},"cosmos-sdk"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'AtomicSwapCoinsAccAddr = sdk.AccAddress(crypto.AddressHash([]byte("BinanceChainAtomicSwapCoins")))\n')),(0,r.kt)("p",null,"The account for mainnet is: ",(0,r.kt)("strong",{parentName:"p"},"bnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4f8ge93u")," and the account for testnet is: ",(0,r.kt)("strong",{parentName:"p"},"tbnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4ffasp3d"),". Once the swap is claimed or refunded, the fund will be transferred from the purely-code-controlled escrow account to client accounts."),(0,r.kt)("h2",{id:"commands"},"Commands"),(0,r.kt)("h3",{id:"hash-timer-locked-transfer"},"Hash Timer Locked Transfer"),(0,r.kt)("p",null,"Hash Timer Locked Transfer (HTLT) is a new transaction type on BNB Beacon Chain, to serve as HTLC in the first step of Atomic Swap,"),(0,r.kt)("h4",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Optional"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"From"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Sender address, where the asset is from"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Receiver address, where the asset is to, if the proper condition meets."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"sender-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"RandomNumberHash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"hash of a random number and timestamp, based on SHA256. If left out, a random value will be generated"),(0,r.kt)("td",{parentName:"tr",align:null},"True")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"Supposed to be the time of sending transaction, counted by second. It should be identical to the one in swap contract. If left out, current timestamp will be used."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OutAmount"),(0,r.kt)("td",{parentName:"tr",align:null},"Coins"),(0,r.kt)("td",{parentName:"tr",align:null},"similar to the Coins in the original Transfer defined in BEP2, assets to swap out"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ExpectedIncome"),(0,r.kt)("td",{parentName:"tr",align:null},"string"),(0,r.kt)("td",{parentName:"tr",align:null},'Expected income from swap counter party, example: "100:BNB" or "100:BNB,10000:BTCB-1DE" The amount needs to be bumped by e^8'),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HeightSpan"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"number of blocks to wait before the asset may be returned to From if not claimed via Random. The number must be larger than or equal to 360 (>2 minutes), and smaller than 518400 (< 48 hours)"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CrossChain"),(0,r.kt)("td",{parentName:"tr",align:null},"bool"),(0,r.kt)("td",{parentName:"tr",align:null},"Specify if the HTLT is for cross chain atomic swap"),(0,r.kt)("td",{parentName:"tr",align:null},"True, the default value is False")))),(0,r.kt)("h4",{id:"outputs"},"Outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number hash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Swap ID"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"examples"},"Examples"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Swap between BEP2 tokens")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"On ",(0,r.kt)("em",{parentName:"li"},"testnet"),":")),(0,r.kt)("p",null,"Command line"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"./tbnbcli token HTLT --recipient-addr HTLT
function From Ethereum",id:"2-call-htlt-function-from-ethereum",level:4},{value:"3. Deputy Call HTLT on BNB Beacon Chain",id:"3-deputy-call-htlt-on-bnb-beacon-chain",level:4},{value:"4. Claim HTLT on BNB Beacon Chain",id:"4-claim-htlt-on-bnb-beacon-chain",level:4},{value:"5. Deputy Claim ERC20 Token",id:"5-deputy-claim-erc20-token",level:4},{value:"6. Demo for Client APP: swap erc20 to bep2",id:"6-demo-for-client-app-swap-erc20-to-bep2",level:4},{value:"Swap Tokens from BNB Beacon Chain to Ethereum",id:"swap-tokens-from-bnb-beacon-chain-to-ethereum",level:3},{value:"1. Send HTLT
Transaction from BNB Beacon Chain",id:"1-send-htlt-transaction-from-bnb-beacon-chain",level:4},{value:"2. Deputy Approve Tokens",id:"2--deputy-approve-tokens",level:4},{value:"3. Deputy Send HTLT on Ethereum",id:"3-deputy-send-htlt-on-ethereum",level:4},{value:"4. Claim ERC20 Tokens on Ethereum",id:"4-claim-erc20-tokens-on-ethereum",level:4},{value:"5. Deputy Claim on BNB Beacon Chain",id:"5-deputy-claim-on-bnb-beacon-chain",level:4},{value:"6. Demo for Client APP: swap bep2 to erc20",id:"6-demo-for-client-app-swap-bep2-to-erc20",level:4},{value:"Swap between Several BEP2 tokens",id:"swap-between-several-bep2-tokens",level:3},{value:"Swap between Several BEP2 tokens fails",id:"swap-between-several-bep2-tokens-fails",level:3}],d={toc:o},u="wrapper";function m(e){let{components:t,...s}=e;return(0,r.kt)(u,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"introduction"},"Introduction"),(0,r.kt)("p",null,"As explained in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/BEPs/blob/master/BEP3.md"},"BEP3"),", Hash Timer Locked Contract(HTLC) has been used for Atomic Swap and cross payment channels between different blockchains. BEP3 defines native transactions to support HTLC on BNB Beacon Chain and also proposes the standard infrastructure and procedure to use HTLC for inter-chain atomic swap to easily create and use pegged token.\nDuring the swap process, the related fund will be locked to a purely-code-controlled escrow account.\nA purely-code-controlled escrow account is a kind of account which is derived from a hard-coded string in BNB Beacon Chain protocol. This kind of account doesn't have its own private key and it's only controlled by code of the protocol. The code for calculating escrow account is the same that is used in ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/cosmos/cosmos-sdk/blob/82a2c5d6d86ffd761f0162b93f0aaa57b7f66fe7/x/supply/internal/types/account.go#L40"},"cosmos-sdk"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'AtomicSwapCoinsAccAddr = sdk.AccAddress(crypto.AddressHash([]byte("BinanceChainAtomicSwapCoins")))\n')),(0,r.kt)("p",null,"The account for mainnet is: ",(0,r.kt)("strong",{parentName:"p"},"bnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4f8ge93u")," and the account for testnet is: ",(0,r.kt)("strong",{parentName:"p"},"tbnb1wxeplyw7x8aahy93w96yhwm7xcq3ke4ffasp3d"),". Once the swap is claimed or refunded, the fund will be transferred from the purely-code-controlled escrow account to client accounts."),(0,r.kt)("h2",{id:"commands"},"Commands"),(0,r.kt)("h3",{id:"hash-timer-locked-transfer"},"Hash Timer Locked Transfer"),(0,r.kt)("p",null,"Hash Timer Locked Transfer (HTLT) is a new transaction type on BNB Beacon Chain, to serve as HTLC in the first step of Atomic Swap,"),(0,r.kt)("h4",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Optional"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"From"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Sender address, where the asset is from"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-addr"),(0,r.kt)("td",{parentName:"tr",align:null},"Address"),(0,r.kt)("td",{parentName:"tr",align:null},"Receiver address, where the asset is to, if the proper condition meets."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"recipient-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"sender-other-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"a byte array, maximum 32 bytes, in any proper encoding. leave it empty for single chain swap"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"RandomNumberHash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null},"hash of a random number and timestamp, based on SHA256. If left out, a random value will be generated"),(0,r.kt)("td",{parentName:"tr",align:null},"True")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"Supposed to be the time of sending transaction, counted by second. It should be identical to the one in swap contract. If left out, current timestamp will be used."),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OutAmount"),(0,r.kt)("td",{parentName:"tr",align:null},"Coins"),(0,r.kt)("td",{parentName:"tr",align:null},"similar to the Coins in the original Transfer defined in BEP2, assets to swap out"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ExpectedIncome"),(0,r.kt)("td",{parentName:"tr",align:null},"string"),(0,r.kt)("td",{parentName:"tr",align:null},'Expected income from swap counter party, example: "100:BNB" or "100:BNB,10000:BTCB-1DE" The amount needs to be bumped by e^8'),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HeightSpan"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null},"number of blocks to wait before the asset may be returned to From if not claimed via Random. The number must be larger than or equal to 360 (>2 minutes), and smaller than 518400 (< 48 hours)"),(0,r.kt)("td",{parentName:"tr",align:null},"No")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CrossChain"),(0,r.kt)("td",{parentName:"tr",align:null},"bool"),(0,r.kt)("td",{parentName:"tr",align:null},"Specify if the HTLT is for cross chain atomic swap"),(0,r.kt)("td",{parentName:"tr",align:null},"True, the default value is False")))),(0,r.kt)("h4",{id:"outputs"},"Outputs"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Timestamp"),(0,r.kt)("td",{parentName:"tr",align:null},"int64"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Random number hash"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Swap ID"),(0,r.kt)("td",{parentName:"tr",align:null},"32 bytes"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"examples"},"Examples"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Swap between BEP2 tokens")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"On ",(0,r.kt)("em",{parentName:"li"},"testnet"),":")),(0,r.kt)("p",null,"Command line"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"./tbnbcli token HTLT --recipient-addr Immediate Or Cancel order
?",id:"what-is-immediate-or-cancel-order",level:4},{value:"Match",id:"match",level:4},{value:"Trade",id:"trade",level:4},{value:"What is Order Expire
?",id:"what-is-order-expire",level:4},{value:"Where can I see my assets and trades?",id:"where-can-i-see-my-assets-and-trades",level:4},{value:"When can I see my order on the blockchain after I send it?",id:"when-can-i-see-my-order-on-the-blockchain-after-i-send-it",level:4},{value:"What is the Fee Structure?",id:"what-is-the-fee-structure",level:4},{value:"What is the current Fee Table on BNB Beacon Chain Mainnet?",id:"what-is-the-current-fee-table-on-bnb-beacon-chain--mainnet",level:3},{value:"What is the current Fee Table on BNB Beacon Chain Testnet?",id:"what-is-the-current-fee-table-on-bnb-beacon-chain--testnet",level:3},{value:"Can I see orders/balances of others or can other people see my orders/balances?",id:"can-i-see-ordersbalances-of-others-or-can-other-people-see-my-ordersbalances",level:3},{value:"Information provided through API and their usage",id:"information-provided-through-api-and-their-usage",level:3},{value:"Is there any limit to using the API to send orders or check market data?",id:"is-there-any-limit-to-using-the-api-to-send-orders-or-check-market-data",level:4},{value:"What does Wallet and API cost to use?",id:"what-does-wallet-and-api-cost-to-use",level:4},{value:"What Market Data can I get?",id:"what-market-data-can-i-get",level:4},{value:"What are the tick size and lot size? Are they fixed?",id:"what-are-the-tick-size-and-lot-size-are-they-fixed",level:4},{value:"Are there limits on notional value of an order?",id:"are-there-limits-on-notional-value-of-an-order",level:4},{value:"What is the decimal precision for prices and quantities on BNB Beacon Chain /DEX?",id:"what-is-the-decimal-precision-for-prices-and-quantities-on-bnb-beacon-chain-dex",level:3},{value:"I forgot the private key for my address, how can I get it back?",id:"i-forgot-the-private-key-for-my-address-how-can-i-get-it-back",level:3},{value:"My private key got stolen by hackers, how can I recover my assets?",id:"my-private-key-got-stolen-by-hackers-how-can-i-recover-my-assets",level:3},{value:"What is the Accelerated Node?",id:"what-is-the-accelerated-node",level:3},{value:"How can I issue an asset?",id:"how-can-i-issue-an-asset",level:3},{value:"What is the consensus algorithm used on BNB Beacon Chain ?",id:"what-is-the-consensus-algorithm-used-on-bnb-beacon-chain-",level:3},{value:"Can I run a full node for BNB Beacon Chain ?",id:"can-i-run-a-full-node-for-bnb-beacon-chain-",level:3},{value:"Does BNB Beacon Chain support Smart Contracts?",id:"does-bnb-beacon-chain-support-smart-contracts",level:3},{value:"How can I transfer tokens, such as Bitcoin, from other block chains onto BNB Beacon Chain ?",id:"how-can-i-transfer-tokens-such-as-bitcoin-from-other-block-chains-onto-bnb-beacon-chain-",level:3},{value:"How is a trading pair created on Binance DEX?",id:"how-is-a-trading-pair-created-on-binance-dex",level:3},{value:"How would a third-party integrate with BNB Beacon Chain and Binance DEX?",id:"how-would-a-third-party-integrate-with-bnb-beacon-chain-and-binance-dex",level:3}],p={toc:s},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"bnb-beacon-chain-faqs"},"BNB Beacon Chain FAQs"),(0,r.kt)("h3",{id:"what-is-bnb-beacon-chain-and-binance-dex"},"What is BNB Beacon Chain and Binance DEX?"),(0,r.kt)("p",null,"BNB Beacon Chain is the blockchain initially developed by Binance and community. Binance DEX is the decentralized exchange module developed on top of the BNB Beacon Chain blockchain."),(0,r.kt)("h3",{id:"what-is-the-design-principle-of-bnb-beacon-chain-"},"What is the design principle of BNB Beacon Chain ?"),(0,r.kt)("p",null,"The main focuses for the design of BNB Beacon Chain are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"No custody of funds: traders maintain control of their private keys and funds."),(0,r.kt)("li",{parentName:"ul"},"High performance: low latency, high throughput for a large user base, and high liquidity trading.\nWe target to achieve 1 second block times, with 1 confirmation finality."),(0,r.kt)("li",{parentName:"ul"},"Low cost: in both fees and liquidity cost."),(0,r.kt)("li",{parentName:"ul"},"Easy user experience"),(0,r.kt)("li",{parentName:"ul"},"Fair trading: minimize front-running, to the extent possible."),(0,r.kt)("li",{parentName:"ul"},"Evolvable: able to develop with forever-improving technology stack, architecture, and ideas.")),(0,r.kt)("h3",{id:"what-can-you-do-on-bnb-beacon-chain-"},"What can you do on BNB Beacon Chain ?"),(0,r.kt)("p",null,"You can:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Send and receive BNB"),(0,r.kt)("li",{parentName:"ul"},"Issue new tokens"),(0,r.kt)("li",{parentName:"ul"},"Send, receive, burn/mint and freeze/unfreeze tokens"),(0,r.kt)("li",{parentName:"ul"},"Propose to create trading pairs between two different tokens"),(0,r.kt)("li",{parentName:"ul"},"Send orders to buy or sell assets through trading pairs created on the chain")),(0,r.kt)("h3",{id:"will-bnb-beacon-chain--introduce-more-features-and-transaction-types-in-the-future"},"Will BNB Beacon Chain introduce more features and transaction types in the future?"),(0,r.kt)("p",null,"Yes, BNB Beacon Chain team and community would cherish the technology advancements and recommended trends and strive to make circulation of assets and value easier and easier."),(0,r.kt)("h3",{id:"what-is-the-native-coin-on-bnb-beacon-chain-"},"What is the native coin on BNB Beacon Chain ?"),(0,r.kt)("p",null,"The Build N Build Coin, BNB, is the native asset on BNB Beacon Chain . There are 200MM BNB coins in total.\nThere will be no mining. The existing coin burns and freezes will still be in effect on the new\nBNB Beacon Chain blockchain."),(0,r.kt)("p",null,"The exact number of BNB coins will be destroyed based on the same number of BNB ERC20 tokens\nthat have already been destroyed."),(0,r.kt)("p",null,"Since BNB Beacon Chain is live, all BNB ERC20 tokens will be swapped for BNB Beacon Chain coins. All\nusers who hold BNB ERC20 tokens can deposit them to Binance.com, and upon withdrawal, the new\nBNB Beacon Chain native coins will be sent to their new wallets."),(0,r.kt)("h3",{id:"how-can-i-register-on-bnb-beacon-chain-dex-and-start-trading"},"How can I register on BNB Beacon Chain /DEX and start trading?"),(0,r.kt)("p",null,"There is no need to register. All you need is a BNB Beacon Chain address, which can be generated with\nany ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/bnb-chain.github.io/blob/master/docs/beaconchain/wallets.md"},"wallet")," that supports BNB Beacon Chain . Then you can trade BNB or other assets stored on that address."),(0,r.kt)("h3",{id:"how-can-i-send-orders-on-binance-dex"},"How can I send orders on Binance DEX?"),(0,r.kt)("h4",{id:"order"},"Order"),(0,r.kt)("p",null,'On Binance DEX, you can send "new order" messages to buy or sell certain assets. You can also\nsend "cancel" messages to cancel existing open orders.'),(0,r.kt)("p",null,"You can use a wallet to send new orders and cancels. Binance DEX also provides API for automated trading."),(0,r.kt)("p",null,"In Binance DEX v1.0, the order message contains:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Symbol: trading pair on the chain"),(0,r.kt)("li",{parentName:"ul"},"Side: buy or sell"),(0,r.kt)("li",{parentName:"ul"},"Price: only limit price orders are supported in BNB Beacon Chain v1.0"),(0,r.kt)("li",{parentName:"ul"},"Amount"),(0,r.kt)("li",{parentName:"ul"},"Time In Force: Binance DEX supports ",(0,r.kt)("inlineCode",{parentName:"li"},"Immediate Or Cancel")," (IOC) and ",(0,r.kt)("inlineCode",{parentName:"li"},"Good Till Expiry"),' (GTE)\norders. GTE orders can quote on the exchange until they are filled by the opposite orders satisfying\nthe limit price, or canceled by client themselves, or expire after 72 hours after 00:00 (UTC).\nCheck the "What is ',(0,r.kt)("inlineCode",{parentName:"li"},"Order Expire"),'" section of the FAQ for more information.')),(0,r.kt)("p",null,"Network nodes examine orders to ensure they are valid. Once the orders are accepted, they are\nbooked on the next block, and get matched accordingly."),(0,r.kt)("h4",{id:"what-is-immediate-or-cancel-order"},"What is ",(0,r.kt)("inlineCode",{parentName:"h4"},"Immediate Or Cancel order"),"?"),(0,r.kt)("p",null,"Immediate Or Cancel is a special order type. Once the order is accepted into a block, Immediate Or\nCancel orders only exist in this block round. The order may get filled to zero, or partially or fully\nfilled by other orders, and then will become expired and removed from the order book right away.\nAs a result, it will not be tradable in the next round of matching. A small fee will be charged\nfor the network usage, if there is no fill at all for the order (deemed as no intention to trade)."),(0,r.kt)("h4",{id:"match"},"Match"),(0,r.kt)("p",null,"Binance DEX does all of its matching on the blockchain, i.e. all nodes perform the matches and\nexpect the same result. This is to ensure the maximum transparency and to mitigate the chance\nfor front-running, even from the block producers. The matching infrastructure is expected to\nevolve and grow in capacity as time progresses."),(0,r.kt)("p",null,"Binance DEX doesn't do continuous matching as most centralized exchanges do. Instead, it matches\nusing periodic auction matching for all the existing open orders received in the past and the\nlatest blocks. The match logic is explained in more detail later."),(0,r.kt)("h4",{id:"trade"},"Trade"),(0,r.kt)("p",null,"Once the orders are filled, the corresponding assets will be automatically moved into buyers'\naddresses. The confirmation is instant and no need to wait for further blocks (i.e. T+0 block).\nBuyers can use the bought asset right away, either send it to another address or trade it again."),(0,r.kt)("h4",{id:"what-is-order-expire"},"What is ",(0,r.kt)("inlineCode",{parentName:"h4"},"Order Expire"),"?"),(0,r.kt)("p",null,"Orders accepted by Binance DEX will either get filled with other orders or remain in the order book,\nbut they will not stay on the order book forever. These orders will expire and be removed from the\norder book after the 1st midnight (UTC) after 72 hours once the order gets accepted. A small fee\nwill be charged for the network usage, if there is no fill at all for the order (deemed as no intention to trade)."),(0,r.kt)("h4",{id:"where-can-i-see-my-assets-and-trades"},"Where can I see my assets and trades?"),(0,r.kt)("p",null,"You can always use wallets that support BNB Beacon Chain to check your asset balances, open orders,\nand (optionally) order/trade history. BNB Beacon Chain Explorer is another tool to check balances\nand transactions."),(0,r.kt)("h4",{id:"when-can-i-see-my-order-on-the-blockchain-after-i-send-it"},"When can I see my order on the blockchain after I send it?"),(0,r.kt)("p",null,"It depends. Normally, if you connect to one of the Accelerated Nodes, your orders should get\naccepted and booked into a block in 1-3 seconds. If the order price is marketable, the order\nwill be filled and trades will come back in about similar time. If you send the order from far-way\n(self-setup full node), or there is heavy network traffic, the order may take longer to reach\na Validator (block producer)."),(0,r.kt)("h4",{id:"what-is-the-fee-structure"},"What is the Fee Structure?"),(0,r.kt)("p",null,"Fees are charged and shared among the block producers (i.e. Validators) to run the network,\nin order to pay for the network usage and prevent abuse and attack. Since all user transactions,\ninclude transfer, new order, cancel etc, they are all recorded in blocks and chain state, the fee will be\nshared among different transactions. New orders are exempt from fees to encourage usage and larger\ntrades will be charged more for their benefits from the liquidity provided in the network.\nOrder Expire and Cancel are also charged with a fee if they fail to provide any liquidity. The current fee table is ",(0,r.kt)("a",{parentName:"p",href:"/docs/trading-spec"},"here")),(0,r.kt)("p",null,"Besides the fees, ",(0,r.kt)("strong",{parentName:"p"},"no other gas will be charged.")),(0,r.kt)("p",null,"Fees can be paid in any asset, but the network will charge BNB first and apply a discount if the\naddress has BNB balance."),(0,r.kt)("p",null,"The fee is subject to periodical review and adjustment, after agreement from validators, via a\nproposal-vote procedure. See a fee-change proposal ",(0,r.kt)("a",{parentName:"p",href:"https://explorer.bnbchain.org/tx/B1E78D8275598CB0538C716997EEDD2F1198B82F4D73959C5BF69CBAF4281240"},"here")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Trade fee is calculated based on trade notional value, while fees for other transactions are fixed."),(0,r.kt)("li",{parentName:"ul"},"It is free to send a new GET order, cancel a partially filled order, or expire a partially filled order."),(0,r.kt)("li",{parentName:"ul"},"Non-Trade related transactions will be charged with a fee when the transactions happen, and can\nonly be paid in BNB. The transaction will be rejected if the address does not have enough BNB."),(0,r.kt)("li",{parentName:"ul"},"Trade-related transactions will be charged with a fee when an order is filled, or\ncanceled/expired/IOC-expired with no fills. If there is enough BNB to pay, BNB fee structure will\nbe used, otherwise, non-BNB fee structure will be used instead."),(0,r.kt)("li",{parentName:"ul"},"If the whole order value and free balance for the receiving asset are not enough to pay the fee,\nall the receiving asset and its residual balance will be charged.")),(0,r.kt)("h3",{id:"what-is-the-current-fee-table-on-bnb-beacon-chain--mainnet"},"What is the current Fee Table on BNB Beacon Chain Mainnet?"),(0,r.kt)("p",null,"Fees are variable and may change over time as governance proposals are proposed and voted on. The current fees table for ",(0,r.kt)("strong",{parentName:"p"},"Mainnet")," as of ",(0,r.kt)("strong",{parentName:"p"},"2021-03-21")," is as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Transaction Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in Non-BNB Asset"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in BNB"),(0,r.kt)("th",{parentName:"tr",align:null},"Exchange (DEX) Related"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Order"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cancel (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Order Expire (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"IOC (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"crossTransferOut"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Multi-send"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Issue Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"10 BNB"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mint Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer ownership"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Burn Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Freeze/Unfreeze Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Lock/unlock/relock Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"200 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000125 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Enable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Disable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"depositHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"claimHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"TinyIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.4 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"MiniIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.6 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SetTokenUri"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List BEP8 Token"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Create A New Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Edit Smart Chain Validator Information"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Delegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Redelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Undelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Unjail A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Byzaitine Behavior Evidence of A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Smart Chain Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Vote"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cross transfer out relayer reward"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")))),(0,r.kt)("h3",{id:"what-is-the-current-fee-table-on-bnb-beacon-chain--testnet"},"What is the current Fee Table on BNB Beacon Chain Testnet?"),(0,r.kt)("p",null,"Fees are variable and may change over time as governance proposals are proposed and voted on. The current fees table for Testnet as of ",(0,r.kt)("strong",{parentName:"p"},"2021-03-17")," is as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Transaction Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in Non-BNB Asset"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in BNB"),(0,r.kt)("th",{parentName:"tr",align:null},"Exchange (DEX) Related"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Order"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cancel (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Order Expire (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"IOC (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"crossTransferOut"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Multi-send"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Issue Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"10 BNB"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mint Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer ownership"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Burn Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Freeze/Unfreeze Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Lock/unlock/relock Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"200 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000125 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Enable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Disable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"depositHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"claimHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"TinyIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.4 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"MiniIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.6 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SetTokenUri"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List BEP8 Token"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Create A New Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Edit Smart Chain Validator Information"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Delegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Redelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Undelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Unjail A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Byzaitine Behavior Evidence of A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Smart Chain Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Vote"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cross transfer out relayer reward"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")))),(0,r.kt)("h3",{id:"can-i-see-ordersbalances-of-others-or-can-other-people-see-my-ordersbalances"},"Can I see orders/balances of others or can other people see my orders/balances?"),(0,r.kt)("p",null,"Yes, anyone can see anyone's orders and balances if they know the corresponding addresses.\nBNB Beacon Chain is 100% transparent for transactions and balances."),(0,r.kt)("h3",{id:"information-provided-through-api-and-their-usage"},"Information provided through API and their usage"),(0,r.kt)("h4",{id:"is-there-any-limit-to-using-the-api-to-send-orders-or-check-market-data"},"Is there any limit to using the API to send orders or check market data?"),(0,r.kt)("p",null,"Yes, there are rate limits to ensure there is no waste or abuse of the network infrastructure.",(0,r.kt)("br",null),"\nPlease check the API documentation."),(0,r.kt)("h4",{id:"what-does-wallet-and-api-cost-to-use"},"What does Wallet and API cost to use?"),(0,r.kt)("p",null,"No fee or commission at all (free to use)."),(0,r.kt)("h4",{id:"what-market-data-can-i-get"},"What Market Data can I get?"),(0,r.kt)("p",null,"The market data provided via Wallet and API are similar to Binance.com, including ticker data, order book,\ntrade and Kline. They can be seen in the Wallet and read from REST or WebSocket API.",(0,r.kt)("br",null),"\nPlease check the API documentation for details."),(0,r.kt)("h4",{id:"what-are-the-tick-size-and-lot-size-are-they-fixed"},"What are the tick size and lot size? Are they fixed?"),(0,r.kt)("p",null,"Tick size is the minimum unit to increase or decrease for the price (in quote asset) of an order,\nwhile lot size is the minimum unit to increase or decrease for the quantity (in base asset) of an order.",(0,r.kt)("br",null),"\nThey are not the same as on Binance.com. They can be queried from API or checked from Wallet UI."),(0,r.kt)("p",null,"Tick Size and lot size are not fixed. BNB Beacon Chain will automatically/periodically review the values to make\nsure proper order size and notional is applied."),(0,r.kt)("h4",{id:"are-there-limits-on-notional-value-of-an-order"},"Are there limits on notional value of an order?"),(0,r.kt)("p",null,"The smallest order you can send for a trading pair is 1 lot size quantity at 1 tick size price. No other limits."),(0,r.kt)("h3",{id:"what-is-the-decimal-precision-for-prices-and-quantities-on-bnb-beacon-chain-dex"},"What is the decimal precision for prices and quantities on BNB Beacon Chain /DEX?"),(0,r.kt)("p",null,"Amounts are represented as integers, and all coins have a fixed scale of 8.",(0,r.kt)("br",null),"\nThis means that if a balance of 100000000 were to be exposed to a wallet integrator, this will represent a balance of 1 coin."),(0,r.kt)("h3",{id:"i-forgot-the-private-key-for-my-address-how-can-i-get-it-back"},"I forgot the private key for my address, how can I get it back?"),(0,r.kt)("p",null,"Sorry, you cannot. Owner of the address takes full responsibility for the private key protection.\nBNB Beacon Chain and official wallets do not have your private key."),(0,r.kt)("h3",{id:"my-private-key-got-stolen-by-hackers-how-can-i-recover-my-assets"},"My private key got stolen by hackers, how can I recover my assets?"),(0,r.kt)("p",null,"Sorry, you take full responsibility of your private key ownership and protection. BNB Beacon Chain\nand official wallets will not record, or transfer out your private key."),(0,r.kt)("h3",{id:"what-is-the-accelerated-node"},"What is the Accelerated Node?"),(0,r.kt)("p",null,"While users can submit transactions and most of the queries via normal, self-run full nodes.",(0,r.kt)("br",null),"\nAccelerated Node provides more secure and faster lines to access BNB Beacon Chain ."),(0,r.kt)("p",null,"Accelerated Node is special infrastructure built around Validator to facilitate accelerated transaction\nrouting and provide richer, faster user interfaces. There are always several Accelerated Nodes running\nat the same time around the world (owned by different organizations) and you are encouraged to choose\none of them to use, or allow your Wallet choose one randomly.",(0,r.kt)("br",null),"\nFor rapid API access, you'd better stay with one Accelerated Node to get better performance."),(0,r.kt)("h3",{id:"how-can-i-issue-an-asset"},"How can I issue an asset?"),(0,r.kt)("p",null,"Anyone can pay a fee and issue an asset as Token on BNB Beacon Chain , as long as they provide\nproper information for the fields below, and then execute the command through the command line or http interfaces."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Name: a description string of less than 21 characters"),(0,r.kt)("li",{parentName:"ul"},"Symbol: an identifier string less than 9 characters, which must be composed of ","[0-9A-Z]"),(0,r.kt)("li",{parentName:"ul"},"Total Supply: a positive number less than or equal to 90 billions"),(0,r.kt)("li",{parentName:"ul"},"Mint-able: whether the token can increase Total Supply in later time or not")),(0,r.kt)("h3",{id:"what-is-the-consensus-algorithm-used-on-bnb-beacon-chain-"},"What is the consensus algorithm used on BNB Beacon Chain ?"),(0,r.kt)("p",null,"BNB Beacon Chain uses BFT and PoS (upcoming) based consensus mechanism to produce blocks among\na series of qualified Validators. This is similar to the architectures of several existing\npopular blockchain platforms such as EOS and NEO.\nThe process for setting up validators among different entities on BNB Beacon Chain is currently being defined. More details will be shared at a later date."),(0,r.kt)("h3",{id:"can-i-run-a-full-node-for-bnb-beacon-chain-"},"Can I run a full node for BNB Beacon Chain ?"),(0,r.kt)("p",null,"Yes, you can. A full node contains all the information and application logic for BNB Beacon Chain .\nIt can receive and broadcast blocks and transactions with other full nodes and even validators.\nThe only exception is it will not participate in the consensus if the full node is not a Validator."),(0,r.kt)("h3",{id:"does-bnb-beacon-chain-support-smart-contracts"},"Does BNB Beacon Chain support Smart Contracts?"),(0,r.kt)("p",null,"No. This was an intentional design decision to improve the performance of the system and eliminate having to support unnecessary features."),(0,r.kt)("p",null,"If you have certain must-have features, it might be added as a native implementation instead of using smart contract.",(0,r.kt)("br",null),"\nFeel free to talk to ",(0,r.kt)("a",{parentName:"p",href:"https://forum.bnbchain.org/"},"BNB Chain Community"),"."),(0,r.kt)("h3",{id:"how-can-i-transfer-tokens-such-as-bitcoin-from-other-block-chains-onto-bnb-beacon-chain-"},"How can I transfer tokens, such as Bitcoin, from other block chains onto BNB Beacon Chain ?"),(0,r.kt)("p",null,"Right now, there are 2 ways to transfer tokens cross-chain:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"via interoperability among different chains. After the latest \u201cArchimedes\u201d upgrade, ",(0,r.kt)("a",{parentName:"li",href:"https://https://github.com/bnb-chain/BEPs/blob/master/BEP3.md"},"BEP3")," was introduced and it defines native transactions to support ",(0,r.kt)("a",{parentName:"li",href:"https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts"},"Hash Timelock Contract (HTLC)")," on BNB Beacon Chain and it also to defines the infrastructure standard and procedure to use HTLC for inter-chain ",(0,r.kt)("a",{parentName:"li",href:"https://www.binance.vision/blockchain/atomic-swaps-explained"},"atomic swap")," to easily swap tokens on different chains. BNB Beacon Chain development community has finished implementing its solution for BEP3 with BEP2 and ERC20 tokens and decided to open-source all of the key components, including\uff1a")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/bnb-chain/bep3-smartcontracts"},"smart-contract solution")," that supports Atomic Peg Swap (APS) for Ethereum. Please note that this solution is already audited by 3rd party."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/bnb-chain/bep3-deputy"},"deputy process")," written in GoLang that handles swap activities")),(0,r.kt)("p",null,"Any developer is welcome to test the solutions in testnet and then use them in mainnet."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"via Binance.com. ",(0,r.kt)("a",{parentName:"li",href:"https://wwww.binance.com"},"Binance"),",the largest cryptocurrency exchange, has issued a number of crypto-pegged tokens on BNB Beacon Chain (BEP2 token format): ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.bnbchain.org/asset/BTCB-1DE"},"BEP2 Bitcoin"),", ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.bnbchain.org/asset/BCH-1FD"},"BEP2 BCH"),",",(0,r.kt)("a",{parentName:"li",href:"https://explorer.bnbchain.org/asset/XRP-BF2"},"BEP2 XRP"),", ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.bnbchain.org/asset/LTC-F07"},"BEP2 LTC"),". Pegged tokens such as ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.bnbchain.org/asset/BTCB-1DE"},"BEP2 Bitcoin"),", are 100% backed by the native coin in ",(0,r.kt)("a",{parentName:"li",href:"https://btc.com/3LYJfcfHPXYJreMsASk2jkn69LWEYKzexb"},"reserve"),". The reserve addresses are published for anyone to audit. Read this ",(0,r.kt)("a",{parentName:"li",href:"https://www.binance.com/en/blog/347360878904684544/Introducing-BitcoinPegged-Token-on-Binance-Chain"},"blog")," to learn about the reserved address. Users are free to convert between native and BEP2 Bitcoin via deposit/withdrawal. This has a higher degree of ease-of-use for most traders. More swap channels will be provided on partner wallets soon.")),(0,r.kt)("p",null,"Atomic swap and this centralized approach are not exclusive to other decentralized approaches, which can also be implemented in parallel. There are many cross-chain solutions being developed and we are very interested in them."),(0,r.kt)("p",null,"Please do ",(0,r.kt)("strong",{parentName:"p"},"NOT")," try to transfer anything on existing network to BNB Beacon Chain testnet, you may experience loss by doing so, because testnet doesn't run with real coins."),(0,r.kt)("h3",{id:"how-is-a-trading-pair-created-on-binance-dex"},"How is a trading pair created on Binance DEX?"),(0,r.kt)("p",null,"The design philosophy of Binance DEX adheres to the idea that the most efficient and low cost way to perform trading and\nprice-discovery is still to use single order book. This single order book is managed and replicated across all\nfull nodes with the same, deterministic matching logic."),(0,r.kt)("p",null,"Simply allowing trading between two assets seems easy enough, however it is expensive for not only the network\nbut also its users in long term (and liquidity costs can be much larger). In order to efficiently use the\nnetwork, BNB Beacon Chain only list assets against BNB and other widely accepted market quote assets."),(0,r.kt)("p",null,'After an asset is issued, which costs a small fee,\nanyone can "propose" to all validators to list it against particular quote assets.\nValidators then vote to accept the proposal.\nA deposit is taken to prevent network abuse.\nOnce the proposal is accepted, the owner of the base asset can list the trading pair.'),(0,r.kt)("p",null,"For more information about this process please check the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/bnb-chain.github.io/blob/master/docs/beaconchain/list.md"},"listing guide"),"."),(0,r.kt)("h3",{id:"how-would-a-third-party-integrate-with-bnb-beacon-chain-and-binance-dex"},"How would a third-party integrate with BNB Beacon Chain and Binance DEX?"),(0,r.kt)("p",null,"A wallet provider may choose to only support the feature set of BNB Beacon Chain , which would just\ncover wallets, addresses, balances and transfers.",(0,r.kt)("br",null),"\nTo improve their implementation further, they could choose to integrate Binance DEX which would add trading (order placement and cancellation), historical order and trade views, charts, etc."))}u.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/864b21f2.65d3e2f2.js b/assets/js/864b21f2.65d3e2f2.js
deleted file mode 100644
index 223de43b3f..0000000000
--- a/assets/js/864b21f2.65d3e2f2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkbeta_BNB_Docs=self.webpackChunkbeta_BNB_Docs||[]).push([[6266],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;tImmediate Or Cancel order
?",id:"what-is-immediate-or-cancel-order",level:4},{value:"Match",id:"match",level:4},{value:"Trade",id:"trade",level:4},{value:"What is Order Expire
?",id:"what-is-order-expire",level:4},{value:"Where can I see my assets and trades?",id:"where-can-i-see-my-assets-and-trades",level:4},{value:"When can I see my order on the blockchain after I send it?",id:"when-can-i-see-my-order-on-the-blockchain-after-i-send-it",level:4},{value:"What is the Fee Structure?",id:"what-is-the-fee-structure",level:4},{value:"What is the current Fee Table on BNB Beacon Chain Mainnet?",id:"what-is-the-current-fee-table-on-bnb-beacon-chain--mainnet",level:3},{value:"What is the current Fee Table on BNB Beacon Chain Testnet?",id:"what-is-the-current-fee-table-on-bnb-beacon-chain--testnet",level:3},{value:"Can I see orders/balances of others or can other people see my orders/balances?",id:"can-i-see-ordersbalances-of-others-or-can-other-people-see-my-ordersbalances",level:3},{value:"Information provided through API and their usage",id:"information-provided-through-api-and-their-usage",level:3},{value:"Is there any limit to using the API to send orders or check market data?",id:"is-there-any-limit-to-using-the-api-to-send-orders-or-check-market-data",level:4},{value:"What does Wallet and API cost to use?",id:"what-does-wallet-and-api-cost-to-use",level:4},{value:"What Market Data can I get?",id:"what-market-data-can-i-get",level:4},{value:"What are the tick size and lot size? Are they fixed?",id:"what-are-the-tick-size-and-lot-size-are-they-fixed",level:4},{value:"Are there limits on notional value of an order?",id:"are-there-limits-on-notional-value-of-an-order",level:4},{value:"What is the decimal precision for prices and quantities on BNB Beacon Chain /DEX?",id:"what-is-the-decimal-precision-for-prices-and-quantities-on-bnb-beacon-chain-dex",level:3},{value:"I forgot the private key for my address, how can I get it back?",id:"i-forgot-the-private-key-for-my-address-how-can-i-get-it-back",level:3},{value:"My private key got stolen by hackers, how can I recover my assets?",id:"my-private-key-got-stolen-by-hackers-how-can-i-recover-my-assets",level:3},{value:"What is the Accelerated Node?",id:"what-is-the-accelerated-node",level:3},{value:"How can I issue an asset?",id:"how-can-i-issue-an-asset",level:3},{value:"What is the consensus algorithm used on BNB Beacon Chain ?",id:"what-is-the-consensus-algorithm-used-on-bnb-beacon-chain-",level:3},{value:"Can I run a full node for BNB Beacon Chain ?",id:"can-i-run-a-full-node-for-bnb-beacon-chain-",level:3},{value:"Does BNB Beacon Chain support Smart Contracts?",id:"does-bnb-beacon-chain-support-smart-contracts",level:3},{value:"How can I transfer tokens, such as Bitcoin, from other block chains onto BNB Beacon Chain ?",id:"how-can-i-transfer-tokens-such-as-bitcoin-from-other-block-chains-onto-bnb-beacon-chain-",level:3},{value:"How is a trading pair created on Binance DEX?",id:"how-is-a-trading-pair-created-on-binance-dex",level:3},{value:"How would a third-party integrate with BNB Beacon Chain and Binance DEX?",id:"how-would-a-third-party-integrate-with-bnb-beacon-chain-and-binance-dex",level:3}],p={toc:s},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(c,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"bnb-beacon-chain-faqs"},"BNB Beacon Chain FAQs"),(0,r.kt)("h3",{id:"what-is-bnb-beacon-chain-and-binance-dex"},"What is BNB Beacon Chain and Binance DEX?"),(0,r.kt)("p",null,"BNB Beacon Chain is the blockchain initially developed by Binance and community. Binance DEX is the decentralized exchange module developed on top of the BNB Beacon Chain blockchain."),(0,r.kt)("h3",{id:"what-is-the-design-principle-of-bnb-beacon-chain-"},"What is the design principle of BNB Beacon Chain ?"),(0,r.kt)("p",null,"The main focuses for the design of BNB Beacon Chain are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"No custody of funds: traders maintain control of their private keys and funds."),(0,r.kt)("li",{parentName:"ul"},"High performance: low latency, high throughput for a large user base, and high liquidity trading.\nWe target to achieve 1 second block times, with 1 confirmation finality."),(0,r.kt)("li",{parentName:"ul"},"Low cost: in both fees and liquidity cost."),(0,r.kt)("li",{parentName:"ul"},"Easy user experience"),(0,r.kt)("li",{parentName:"ul"},"Fair trading: minimize front-running, to the extent possible."),(0,r.kt)("li",{parentName:"ul"},"Evolvable: able to develop with forever-improving technology stack, architecture, and ideas.")),(0,r.kt)("h3",{id:"what-can-you-do-on-bnb-beacon-chain-"},"What can you do on BNB Beacon Chain ?"),(0,r.kt)("p",null,"You can:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Send and receive BNB"),(0,r.kt)("li",{parentName:"ul"},"Issue new tokens"),(0,r.kt)("li",{parentName:"ul"},"Send, receive, burn/mint and freeze/unfreeze tokens"),(0,r.kt)("li",{parentName:"ul"},"Propose to create trading pairs between two different tokens"),(0,r.kt)("li",{parentName:"ul"},"Send orders to buy or sell assets through trading pairs created on the chain")),(0,r.kt)("h3",{id:"will-bnb-beacon-chain--introduce-more-features-and-transaction-types-in-the-future"},"Will BNB Beacon Chain introduce more features and transaction types in the future?"),(0,r.kt)("p",null,"Yes, BNB Beacon Chain team and community would cherish the technology advancements and recommended trends and strive to make circulation of assets and value easier and easier."),(0,r.kt)("h3",{id:"what-is-the-native-coin-on-bnb-beacon-chain-"},"What is the native coin on BNB Beacon Chain ?"),(0,r.kt)("p",null,"The Build N Build Coin, BNB, is the native asset on BNB Beacon Chain . There are 200MM BNB coins in total.\nThere will be no mining. The existing coin burns and freezes will still be in effect on the new\nBNB Beacon Chain blockchain."),(0,r.kt)("p",null,"The exact number of BNB coins will be destroyed based on the same number of BNB ERC20 tokens\nthat have already been destroyed."),(0,r.kt)("p",null,"Since BNB Beacon Chain is live, all BNB ERC20 tokens will be swapped for BNB Beacon Chain coins. All\nusers who hold BNB ERC20 tokens can deposit them to Binance.com, and upon withdrawal, the new\nBNB Beacon Chain native coins will be sent to their new wallets."),(0,r.kt)("h3",{id:"how-can-i-register-on-bnb-beacon-chain-dex-and-start-trading"},"How can I register on BNB Beacon Chain /DEX and start trading?"),(0,r.kt)("p",null,"There is no need to register. All you need is a BNB Beacon Chain address, which can be generated with\nany ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/bnb-chain.github.io/blob/master/docs/beaconchain/wallets.md"},"wallet")," that supports BNB Beacon Chain . Then you can trade BNB or other assets stored on that address."),(0,r.kt)("h3",{id:"how-can-i-send-orders-on-binance-dex"},"How can I send orders on Binance DEX?"),(0,r.kt)("h4",{id:"order"},"Order"),(0,r.kt)("p",null,'On Binance DEX, you can send "new order" messages to buy or sell certain assets. You can also\nsend "cancel" messages to cancel existing open orders.'),(0,r.kt)("p",null,"You can use a wallet to send new orders and cancels. Binance DEX also provides API for automated trading."),(0,r.kt)("p",null,"In Binance DEX v1.0, the order message contains:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Symbol: trading pair on the chain"),(0,r.kt)("li",{parentName:"ul"},"Side: buy or sell"),(0,r.kt)("li",{parentName:"ul"},"Price: only limit price orders are supported in BNB Beacon Chain v1.0"),(0,r.kt)("li",{parentName:"ul"},"Amount"),(0,r.kt)("li",{parentName:"ul"},"Time In Force: Binance DEX supports ",(0,r.kt)("inlineCode",{parentName:"li"},"Immediate Or Cancel")," (IOC) and ",(0,r.kt)("inlineCode",{parentName:"li"},"Good Till Expiry"),' (GTE)\norders. GTE orders can quote on the exchange until they are filled by the opposite orders satisfying\nthe limit price, or canceled by client themselves, or expire after 72 hours after 00:00 (UTC).\nCheck the "What is ',(0,r.kt)("inlineCode",{parentName:"li"},"Order Expire"),'" section of the FAQ for more information.')),(0,r.kt)("p",null,"Network nodes examine orders to ensure they are valid. Once the orders are accepted, they are\nbooked on the next block, and get matched accordingly."),(0,r.kt)("h4",{id:"what-is-immediate-or-cancel-order"},"What is ",(0,r.kt)("inlineCode",{parentName:"h4"},"Immediate Or Cancel order"),"?"),(0,r.kt)("p",null,"Immediate Or Cancel is a special order type. Once the order is accepted into a block, Immediate Or\nCancel orders only exist in this block round. The order may get filled to zero, or partially or fully\nfilled by other orders, and then will become expired and removed from the order book right away.\nAs a result, it will not be tradable in the next round of matching. A small fee will be charged\nfor the network usage, if there is no fill at all for the order (deemed as no intention to trade)."),(0,r.kt)("h4",{id:"match"},"Match"),(0,r.kt)("p",null,"Binance DEX does all of its matching on the blockchain, i.e. all nodes perform the matches and\nexpect the same result. This is to ensure the maximum transparency and to mitigate the chance\nfor front-running, even from the block producers. The matching infrastructure is expected to\nevolve and grow in capacity as time progresses."),(0,r.kt)("p",null,"Binance DEX doesn't do continuous matching as most centralized exchanges do. Instead, it matches\nusing periodic auction matching for all the existing open orders received in the past and the\nlatest blocks. The match logic is explained in more detail later."),(0,r.kt)("h4",{id:"trade"},"Trade"),(0,r.kt)("p",null,"Once the orders are filled, the corresponding assets will be automatically moved into buyers'\naddresses. The confirmation is instant and no need to wait for further blocks (i.e. T+0 block).\nBuyers can use the bought asset right away, either send it to another address or trade it again."),(0,r.kt)("h4",{id:"what-is-order-expire"},"What is ",(0,r.kt)("inlineCode",{parentName:"h4"},"Order Expire"),"?"),(0,r.kt)("p",null,"Orders accepted by Binance DEX will either get filled with other orders or remain in the order book,\nbut they will not stay on the order book forever. These orders will expire and be removed from the\norder book after the 1st midnight (UTC) after 72 hours once the order gets accepted. A small fee\nwill be charged for the network usage, if there is no fill at all for the order (deemed as no intention to trade)."),(0,r.kt)("h4",{id:"where-can-i-see-my-assets-and-trades"},"Where can I see my assets and trades?"),(0,r.kt)("p",null,"You can always use wallets that support BNB Beacon Chain to check your asset balances, open orders,\nand (optionally) order/trade history. BNB Beacon Chain Explorer is another tool to check balances\nand transactions."),(0,r.kt)("h4",{id:"when-can-i-see-my-order-on-the-blockchain-after-i-send-it"},"When can I see my order on the blockchain after I send it?"),(0,r.kt)("p",null,"It depends. Normally, if you connect to one of the Accelerated Nodes, your orders should get\naccepted and booked into a block in 1-3 seconds. If the order price is marketable, the order\nwill be filled and trades will come back in about similar time. If you send the order from far-way\n(self-setup full node), or there is heavy network traffic, the order may take longer to reach\na Validator (block producer)."),(0,r.kt)("h4",{id:"what-is-the-fee-structure"},"What is the Fee Structure?"),(0,r.kt)("p",null,"Fees are charged and shared among the block producers (i.e. Validators) to run the network,\nin order to pay for the network usage and prevent abuse and attack. Since all user transactions,\ninclude transfer, new order, cancel etc, they are all recorded in blocks and chain state, the fee will be\nshared among different transactions. New orders are exempt from fees to encourage usage and larger\ntrades will be charged more for their benefits from the liquidity provided in the network.\nOrder Expire and Cancel are also charged with a fee if they fail to provide any liquidity. The current fee table is ",(0,r.kt)("a",{parentName:"p",href:"/docs/trading-spec"},"here")),(0,r.kt)("p",null,"Besides the fees, ",(0,r.kt)("strong",{parentName:"p"},"no other gas will be charged.")),(0,r.kt)("p",null,"Fees can be paid in any asset, but the network will charge BNB first and apply a discount if the\naddress has BNB balance."),(0,r.kt)("p",null,"The fee is subject to periodical review and adjustment, after agreement from validators, via a\nproposal-vote procedure. See a fee-change proposal ",(0,r.kt)("a",{parentName:"p",href:"https://explorer.binance.org/tx/B1E78D8275598CB0538C716997EEDD2F1198B82F4D73959C5BF69CBAF4281240"},"here")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Trade fee is calculated based on trade notional value, while fees for other transactions are fixed."),(0,r.kt)("li",{parentName:"ul"},"It is free to send a new GET order, cancel a partially filled order, or expire a partially filled order."),(0,r.kt)("li",{parentName:"ul"},"Non-Trade related transactions will be charged with a fee when the transactions happen, and can\nonly be paid in BNB. The transaction will be rejected if the address does not have enough BNB."),(0,r.kt)("li",{parentName:"ul"},"Trade-related transactions will be charged with a fee when an order is filled, or\ncanceled/expired/IOC-expired with no fills. If there is enough BNB to pay, BNB fee structure will\nbe used, otherwise, non-BNB fee structure will be used instead."),(0,r.kt)("li",{parentName:"ul"},"If the whole order value and free balance for the receiving asset are not enough to pay the fee,\nall the receiving asset and its residual balance will be charged.")),(0,r.kt)("h3",{id:"what-is-the-current-fee-table-on-bnb-beacon-chain--mainnet"},"What is the current Fee Table on BNB Beacon Chain Mainnet?"),(0,r.kt)("p",null,"Fees are variable and may change over time as governance proposals are proposed and voted on. The current fees table for ",(0,r.kt)("strong",{parentName:"p"},"Mainnet")," as of ",(0,r.kt)("strong",{parentName:"p"},"2021-03-21")," is as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Transaction Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in Non-BNB Asset"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in BNB"),(0,r.kt)("th",{parentName:"tr",align:null},"Exchange (DEX) Related"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Order"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cancel (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Order Expire (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"IOC (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"crossTransferOut"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Multi-send"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Issue Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"10 BNB"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mint Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer ownership"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Burn Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Freeze/Unfreeze Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Lock/unlock/relock Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"200 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000125 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Enable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Disable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"depositHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"claimHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"TinyIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.4 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"MiniIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.6 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SetTokenUri"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List BEP8 Token"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Create A New Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Edit Smart Chain Validator Information"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Delegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Redelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Undelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Unjail A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Byzaitine Behavior Evidence of A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Smart Chain Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Vote"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cross transfer out relayer reward"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")))),(0,r.kt)("h3",{id:"what-is-the-current-fee-table-on-bnb-beacon-chain--testnet"},"What is the current Fee Table on BNB Beacon Chain Testnet?"),(0,r.kt)("p",null,"Fees are variable and may change over time as governance proposals are proposed and voted on. The current fees table for Testnet as of ",(0,r.kt)("strong",{parentName:"p"},"2021-03-17")," is as follows:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Transaction Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in Non-BNB Asset"),(0,r.kt)("th",{parentName:"tr",align:null},"Pay in BNB"),(0,r.kt)("th",{parentName:"tr",align:null},"Exchange (DEX) Related"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"New Order"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"0"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cancel (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Order Expire (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"IOC (No Fill)"),(0,r.kt)("td",{parentName:"tr",align:null},"Equivalent 0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000005 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"Y")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"crossTransferOut"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Multi-send"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Issue Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"10 BNB"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mint Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Transfer ownership"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Burn Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Freeze/Unfreeze Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.001 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Lock/unlock/relock Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List Asset"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"200 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000125 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Enable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Disable Memo Check"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"HTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"depositHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"claimHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"refundHTLT"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"TinyIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.4 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"MiniIssueFee"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.6 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SetTokenUri"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.000075 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"List BEP8 Token"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Create A New Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Edit Smart Chain Validator Information"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.2 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Delegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0002 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Redelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0006 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Undelegate Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Unjail A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Byzaitine Behavior Evidence of A Smart Chain Validator"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.5 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Submit Smart Chain Proposal"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"1 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Deposit"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.00025 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Smart Chain Proposal Vote"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cross transfer out relayer reward"),(0,r.kt)("td",{parentName:"tr",align:null},"N/A"),(0,r.kt)("td",{parentName:"tr",align:null},"0.0004 BNB"),(0,r.kt)("td",{parentName:"tr",align:null},"N")))),(0,r.kt)("h3",{id:"can-i-see-ordersbalances-of-others-or-can-other-people-see-my-ordersbalances"},"Can I see orders/balances of others or can other people see my orders/balances?"),(0,r.kt)("p",null,"Yes, anyone can see anyone's orders and balances if they know the corresponding addresses.\nBNB Beacon Chain is 100% transparent for transactions and balances."),(0,r.kt)("h3",{id:"information-provided-through-api-and-their-usage"},"Information provided through API and their usage"),(0,r.kt)("h4",{id:"is-there-any-limit-to-using-the-api-to-send-orders-or-check-market-data"},"Is there any limit to using the API to send orders or check market data?"),(0,r.kt)("p",null,"Yes, there are rate limits to ensure there is no waste or abuse of the network infrastructure.",(0,r.kt)("br",null),"\nPlease check the API documentation."),(0,r.kt)("h4",{id:"what-does-wallet-and-api-cost-to-use"},"What does Wallet and API cost to use?"),(0,r.kt)("p",null,"No fee or commission at all (free to use)."),(0,r.kt)("h4",{id:"what-market-data-can-i-get"},"What Market Data can I get?"),(0,r.kt)("p",null,"The market data provided via Wallet and API are similar to Binance.com, including ticker data, order book,\ntrade and Kline. They can be seen in the Wallet and read from REST or WebSocket API.",(0,r.kt)("br",null),"\nPlease check the API documentation for details."),(0,r.kt)("h4",{id:"what-are-the-tick-size-and-lot-size-are-they-fixed"},"What are the tick size and lot size? Are they fixed?"),(0,r.kt)("p",null,"Tick size is the minimum unit to increase or decrease for the price (in quote asset) of an order,\nwhile lot size is the minimum unit to increase or decrease for the quantity (in base asset) of an order.",(0,r.kt)("br",null),"\nThey are not the same as on Binance.com. They can be queried from API or checked from Wallet UI."),(0,r.kt)("p",null,"Tick Size and lot size are not fixed. BNB Beacon Chain will automatically/periodically review the values to make\nsure proper order size and notional is applied."),(0,r.kt)("h4",{id:"are-there-limits-on-notional-value-of-an-order"},"Are there limits on notional value of an order?"),(0,r.kt)("p",null,"The smallest order you can send for a trading pair is 1 lot size quantity at 1 tick size price. No other limits."),(0,r.kt)("h3",{id:"what-is-the-decimal-precision-for-prices-and-quantities-on-bnb-beacon-chain-dex"},"What is the decimal precision for prices and quantities on BNB Beacon Chain /DEX?"),(0,r.kt)("p",null,"Amounts are represented as integers, and all coins have a fixed scale of 8.",(0,r.kt)("br",null),"\nThis means that if a balance of 100000000 were to be exposed to a wallet integrator, this will represent a balance of 1 coin."),(0,r.kt)("h3",{id:"i-forgot-the-private-key-for-my-address-how-can-i-get-it-back"},"I forgot the private key for my address, how can I get it back?"),(0,r.kt)("p",null,"Sorry, you cannot. Owner of the address takes full responsibility for the private key protection.\nBNB Beacon Chain and official wallets do not have your private key."),(0,r.kt)("h3",{id:"my-private-key-got-stolen-by-hackers-how-can-i-recover-my-assets"},"My private key got stolen by hackers, how can I recover my assets?"),(0,r.kt)("p",null,"Sorry, you take full responsibility of your private key ownership and protection. BNB Beacon Chain\nand official wallets will not record, or transfer out your private key."),(0,r.kt)("h3",{id:"what-is-the-accelerated-node"},"What is the Accelerated Node?"),(0,r.kt)("p",null,"While users can submit transactions and most of the queries via normal, self-run full nodes.",(0,r.kt)("br",null),"\nAccelerated Node provides more secure and faster lines to access BNB Beacon Chain ."),(0,r.kt)("p",null,"Accelerated Node is special infrastructure built around Validator to facilitate accelerated transaction\nrouting and provide richer, faster user interfaces. There are always several Accelerated Nodes running\nat the same time around the world (owned by different organizations) and you are encouraged to choose\none of them to use, or allow your Wallet choose one randomly.",(0,r.kt)("br",null),"\nFor rapid API access, you'd better stay with one Accelerated Node to get better performance."),(0,r.kt)("h3",{id:"how-can-i-issue-an-asset"},"How can I issue an asset?"),(0,r.kt)("p",null,"Anyone can pay a fee and issue an asset as Token on BNB Beacon Chain , as long as they provide\nproper information for the fields below, and then execute the command through the command line or http interfaces."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Name: a description string of less than 21 characters"),(0,r.kt)("li",{parentName:"ul"},"Symbol: an identifier string less than 9 characters, which must be composed of ","[0-9A-Z]"),(0,r.kt)("li",{parentName:"ul"},"Total Supply: a positive number less than or equal to 90 billions"),(0,r.kt)("li",{parentName:"ul"},"Mint-able: whether the token can increase Total Supply in later time or not")),(0,r.kt)("h3",{id:"what-is-the-consensus-algorithm-used-on-bnb-beacon-chain-"},"What is the consensus algorithm used on BNB Beacon Chain ?"),(0,r.kt)("p",null,"BNB Beacon Chain uses BFT and PoS (upcoming) based consensus mechanism to produce blocks among\na series of qualified Validators. This is similar to the architectures of several existing\npopular blockchain platforms such as EOS and NEO.\nThe process for setting up validators among different entities on BNB Beacon Chain is currently being defined. More details will be shared at a later date."),(0,r.kt)("h3",{id:"can-i-run-a-full-node-for-bnb-beacon-chain-"},"Can I run a full node for BNB Beacon Chain ?"),(0,r.kt)("p",null,"Yes, you can. A full node contains all the information and application logic for BNB Beacon Chain .\nIt can receive and broadcast blocks and transactions with other full nodes and even validators.\nThe only exception is it will not participate in the consensus if the full node is not a Validator."),(0,r.kt)("h3",{id:"does-bnb-beacon-chain-support-smart-contracts"},"Does BNB Beacon Chain support Smart Contracts?"),(0,r.kt)("p",null,"No. This was an intentional design decision to improve the performance of the system and eliminate having to support unnecessary features."),(0,r.kt)("p",null,"If you have certain must-have features, it might be added as a native implementation instead of using smart contract.",(0,r.kt)("br",null),"\nFeel free to talk to ",(0,r.kt)("a",{parentName:"p",href:"https://forum.bnbchain.org/"},"BNB Chain Community"),"."),(0,r.kt)("h3",{id:"how-can-i-transfer-tokens-such-as-bitcoin-from-other-block-chains-onto-bnb-beacon-chain-"},"How can I transfer tokens, such as Bitcoin, from other block chains onto BNB Beacon Chain ?"),(0,r.kt)("p",null,"Right now, there are 2 ways to transfer tokens cross-chain:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"via interoperability among different chains. After the latest \u201cArchimedes\u201d upgrade, ",(0,r.kt)("a",{parentName:"li",href:"https://https://github.com/bnb-chain/BEPs/blob/master/BEP3.md"},"BEP3")," was introduced and it defines native transactions to support ",(0,r.kt)("a",{parentName:"li",href:"https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts"},"Hash Timelock Contract (HTLC)")," on BNB Beacon Chain and it also to defines the infrastructure standard and procedure to use HTLC for inter-chain ",(0,r.kt)("a",{parentName:"li",href:"https://www.binance.vision/blockchain/atomic-swaps-explained"},"atomic swap")," to easily swap tokens on different chains. BNB Beacon Chain development community has finished implementing its solution for BEP3 with BEP2 and ERC20 tokens and decided to open-source all of the key components, including\uff1a")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/bnb-chain/bep3-smartcontracts"},"smart-contract solution")," that supports Atomic Peg Swap (APS) for Ethereum. Please note that this solution is already audited by 3rd party."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/bnb-chain/bep3-deputy"},"deputy process")," written in GoLang that handles swap activities")),(0,r.kt)("p",null,"Any developer is welcome to test the solutions in testnet and then use them in mainnet."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"via Binance.com. ",(0,r.kt)("a",{parentName:"li",href:"https://wwww.binance.com"},"Binance"),",the largest cryptocurrency exchange, has issued a number of crypto-pegged tokens on BNB Beacon Chain (BEP2 token format): ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.binance.org/asset/BTCB-1DE"},"BEP2 Bitcoin"),", ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.binance.org/asset/BCH-1FD"},"BEP2 BCH"),",",(0,r.kt)("a",{parentName:"li",href:"https://explorer.binance.org/asset/XRP-BF2"},"BEP2 XRP"),", ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.binance.org/asset/LTC-F07"},"BEP2 LTC"),". Pegged tokens such as ",(0,r.kt)("a",{parentName:"li",href:"https://explorer.binance.org/asset/BTCB-1DE"},"BEP2 Bitcoin"),", are 100% backed by the native coin in ",(0,r.kt)("a",{parentName:"li",href:"https://btc.com/3LYJfcfHPXYJreMsASk2jkn69LWEYKzexb"},"reserve"),". The reserve addresses are published for anyone to audit. Read this ",(0,r.kt)("a",{parentName:"li",href:"https://www.binance.com/en/blog/347360878904684544/Introducing-BitcoinPegged-Token-on-Binance-Chain"},"blog")," to learn about the reserved address. Users are free to convert between native and BEP2 Bitcoin via deposit/withdrawal. This has a higher degree of ease-of-use for most traders. More swap channels will be provided on partner wallets soon.")),(0,r.kt)("p",null,"Atomic swap and this centralized approach are not exclusive to other decentralized approaches, which can also be implemented in parallel. There are many cross-chain solutions being developed and we are very interested in them."),(0,r.kt)("p",null,"Please do ",(0,r.kt)("strong",{parentName:"p"},"NOT")," try to transfer anything on existing network to BNB Beacon Chain testnet, you may experience loss by doing so, because testnet doesn't run with real coins."),(0,r.kt)("h3",{id:"how-is-a-trading-pair-created-on-binance-dex"},"How is a trading pair created on Binance DEX?"),(0,r.kt)("p",null,"The design philosophy of Binance DEX adheres to the idea that the most efficient and low cost way to perform trading and\nprice-discovery is still to use single order book. This single order book is managed and replicated across all\nfull nodes with the same, deterministic matching logic."),(0,r.kt)("p",null,"Simply allowing trading between two assets seems easy enough, however it is expensive for not only the network\nbut also its users in long term (and liquidity costs can be much larger). In order to efficiently use the\nnetwork, BNB Beacon Chain only list assets against BNB and other widely accepted market quote assets."),(0,r.kt)("p",null,'After an asset is issued, which costs a small fee,\nanyone can "propose" to all validators to list it against particular quote assets.\nValidators then vote to accept the proposal.\nA deposit is taken to prevent network abuse.\nOnce the proposal is accepted, the owner of the base asset can list the trading pair.'),(0,r.kt)("p",null,"For more information about this process please check the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/bnb-chain/bnb-chain.github.io/blob/master/docs/beaconchain/list.md"},"listing guide"),"."),(0,r.kt)("h3",{id:"how-would-a-third-party-integrate-with-bnb-beacon-chain-and-binance-dex"},"How would a third-party integrate with BNB Beacon Chain and Binance DEX?"),(0,r.kt)("p",null,"A wallet provider may choose to only support the feature set of BNB Beacon Chain , which would just\ncover wallets, addresses, balances and transfers.",(0,r.kt)("br",null),"\nTo improve their implementation further, they could choose to integrate Binance DEX which would add trading (order placement and cancellation), historical order and trade views, charts, etc."))}u.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/a30d6a39.96744a72.js b/assets/js/a30d6a39.59b4f5b6.js
similarity index 99%
rename from assets/js/a30d6a39.96744a72.js
rename to assets/js/a30d6a39.59b4f5b6.js
index fe826775f4..71a46715f3 100644
--- a/assets/js/a30d6a39.96744a72.js
+++ b/assets/js/a30d6a39.59b4f5b6.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkbeta_BNB_Docs=self.webpackChunkbeta_BNB_Docs||[]).push([[3436],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>h});var o=t(67294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function r(e){for(var n=1;n