diff --git a/package-lock.json b/package-lock.json index 5ba8bb09..8fed42d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "simple-staking", - "version": "0.2.38", + "version": "0.2.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "simple-staking", - "version": "0.2.38", + "version": "0.2.39", "dependencies": { "@bitcoinerlab/secp256k1": "^1.1.1", "@keystonehq/animated-qr": "^0.8.6", diff --git a/package.json b/package.json index f8b744e4..06bf27ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "simple-staking", - "version": "0.2.38", + "version": "0.2.39", "private": true, "scripts": { "dev": "next dev", diff --git a/src/app/components/FAQ/FAQ.tsx b/src/app/components/FAQ/FAQ.tsx index 8cf7f327..aecf825b 100644 --- a/src/app/components/FAQ/FAQ.tsx +++ b/src/app/components/FAQ/FAQ.tsx @@ -17,7 +17,7 @@ export const FAQ: React.FC = () => { const [paramWithCtx, setParamWithCtx] = useState< ParamsWithContext | undefined >(); - const { coinName } = getNetworkConfig(); + const { coinName, networkName } = getNetworkConfig(); const btcHeight = useBtcHeight(); const globalParams = useGlobalParams(); @@ -41,6 +41,7 @@ export const FAQ: React.FC = () => {
{questions( coinName, + networkName, paramWithCtx?.currentVersion?.confirmationDepth, ).map((question) => (
{ const questionList = [ @@ -15,7 +16,7 @@ export const questions = ( content: `

Babylon is a suite of security-sharing protocols that bring Bitcoin\’s unparalleled security to the decentralized world. The latest protocol, Bitcoin Staking, enables Bitcoin holders to stake their Bitcoin to provide crypto-economic security to PoS (proof-of-stake) systems in a trustless and self-custodial way.

`, }, { - title: "How does Bitcoin Staking Work?", + title: "How does Bitcoin Staking work?", content: `

${coinName} holders lock their ${coinName} using the trustless and self-custodial Bitcoin Staking script for a predetermined time (timelock) in exchange for voting power in an underlying PoS protocol. In return, Bitcoin holders will earn PoS staking rewards.


Finality providers perform the voting. A ${coinName} staker can create a finality provider by itself and self-delegate or delegate its voting power to a third-party finality provider.


If a finality provider attacks the PoS system, the ${coinName}s behind the voting powers delegated to it will be subject to protocol slashing. This deters ${coinName} stakers and finality providers from attacking the PoS system.

@@ -23,11 +24,11 @@ export const questions = ( }, { title: "What does this staking dApp allow me to do?", - content: `

The staking dApp allows ${coinName} holders to stake their ${coinName} and delegate their voting power to a finality provider they select. Stakers can view their past staking history and on-demand unlock their stake for early withdrawal.

`, + content: `

The staking dApp is an interface to the Babylon Bitcoin Staking protocol. The Babylon Bitcoin Staking protocol allows ${coinName} holders to stake their ${coinName} and delegate their voting power to a finality provider they select. Stakers can view their past staking history and send a request to unlock their stake for early withdrawal.

`, }, { title: `Does my ${coinName} leave my wallet once staked?`, - content: `

Yes, it leaves your wallet. Your wallet will not show it as your available balance because it is locked. However, it is not sent to any third party. It is locked in a self-custodial contract you control. This means that any subsequent movement of the ${coinName} will need your approval, and you are the only one who can unbond the stake and withdraw.

`, + content: `

Technically, your ${coinName} has not left your custody. However, your wallet will not show the ${coinName} you staked in your available balance once that ${coinName} is locked. Current wallet implementations do not yet know how to display staked ${coinName} that is still in your custody. When staking, you do not send the ${coinName} to a third party. It is locked in a self-custodial Bitcoin Staking script that you control. This means that any subsequent movement of the ${coinName} will need your approval. You are the only one who can unbond the stake and withdraw.

`, }, { title: `Is my ${coinName} safe? Could I get slashed?`, @@ -38,24 +39,25 @@ export const questions = (
  1. 1. Code security
    - There is an inherent risk that the code developed for Bitcoin staking has vulnerabilities or bugs. The Babylon team has open-sourced the code, and it is under security audits. + There is an inherent risk that the code developed for Bitcoin Staking has vulnerabilities or bugs. The Babylon team has open-sourced the code, and it is under security audits.

  2. 2. System reliability
    - The Bitcoin staking system may be slow, unavailable, or compromised, which may cause the staking service to be unavailable or compromised, potentially leading to ${coinName} not being unbondable or not withdrawable. + The Bitcoin Staking system may be slow, unavailable, or compromised, which may cause the staking service to be unavailable or compromised, potentially leading to ${coinName} not being unbondable or not withdrawable.
+

The Babylon Labs team has open-sourced the code which has been audited by Coinspect, Zellic, and through a public security campaign facilitated by Cantina.

`, }, { title: "How long will it take for my stake to become active?", - content: `

A stake’s status demonstrates the current stage of the staking process. All stake starts in a Pending state which denotes that the ${coinName} Staking transaction does not yet have sufficient ${coinName} block confirmations. As soon as it receives ${confirmationDepth || 10} ${coinName} block confirmations, the status transitions to Overflow or Active.


+ content: `

A stake’s status demonstrates the current stage of the staking process. All stake starts in a Pending state, which denotes that the ${coinName} Staking transaction does not yet have sufficient ${coinName} block confirmations. As soon as it receives ${confirmationDepth || 10} ${coinName} block confirmations, the status transitions to Overflow or Active.


-

In an amount-based cap, A stake is Overflow if the system has already accumulated the maximum amount of ${coinName} it can accept.


-

In a time-based cap, where there is a starting block height and ending block height, a stake is overflow if it is included in a ${coinName} block that is newer than the ending block.


+

In an amount-based cap, a stake is Overflow if the system has already accumulated the maximum amount of ${coinName} it can accept.


+

In a time-based cap, where there is a starting block height and an ending block height, a stake is Overflow if it is included in a ${coinName} block that is newer than the ending block.


Otherwise, the stake is Active.


-

Overflow stake should be on-demand unbonded and withdrawn.

`, +

You should unbond and withdraw a stake that is Overflow.

`, }, { title: "Do I get rewards for staking?", @@ -68,7 +70,8 @@ export const questions = ( }, { title: "Will I pay any fees for staking?", - content: `

Yes, there are three transaction fees associated with staking, all charged by the Bitcoin network:


+ content: `

You will need to pay ${networkName} network fees to have transaction messages delivered and results recorded on the Bitcoin blockchain. Examples include staking, unbonding, and withdrawal transactions. This interface may provide estimates of network fees. However, the actual network fee may be higher.
+ If you lock your ${coinName} in a staking transaction without the necessary amount of ${coinName} in the staked amount to pay for the unbonding and withdrawal transactions, you won’t be able to unbond or withdraw (although that also means the staked amount is less than those transaction fees). The stake will remain locked unless the ${networkName} network fees come down sufficiently. Here are more details about the network fees:


  1. 1. Staking Transaction Fee (Fs): This fee is for the staking transaction. To stake amount S, you need at least S + Fs in your wallet. It is calculated in real-time based on current network conditions. @@ -85,7 +88,11 @@ export const questions = ( { title: "Is it ok to use a wallet holding fungible tokens built on Bitcoin (e.g. BRC-20/ARC-20/Runes)?", - content: `

    No, this should be avoided. The fungible tokens built on Bitcoin ecosystem is still in its infancy and in an experimental phase. Software built for the detection of such tokens to avoid their misspending comes without a warranty and guarantees, making it risky to connect wallets owning such tokens to dApps.

    `, + content: `

    No, this should be avoided. Please do not connect or use a Bitcoin wallet holding BRC-20, ARC-20, Runes, or other NFTs or Bitcoin-native assets (other than ${coinName}). They are still in their infancy and in an experimental phase. Software built for the detection of such tokens to avoid their misspending may not work, and you may lose all such tokens.

    `, + }, + { + title: "Are hardware wallets supported?", + content: `

    Keystone via QR code is the only hardware wallet supporting Bitcoin Staking. Using any other hardware wallet through any means (such as connection to a software/extension/mobile wallet) can lead to permanent inability to withdraw the stake.

    `, }, ]; if (shouldDisplayTestingMsg()) {