SatsFlux: A Multi-Chain Bitcoin Bridging Protocol – Technical Whitepaper
Version 1.0 – September 2025
Executive Summary
SatsFlux is a decentralized protocol that bridges Bitcoin (BTC) to multiple blockchain networks in a secure, trust-minimized way. It introduces sBTC, a 1:1 BTC-backed token that can move across Ethereum, Arbitrum, Base, Solana, and other chains while being fully collateralized by BTC held in a robust cross-chain vault. The SatsFlux network leverages Bitcoin’s latest advancements – including Taproot-enabled threshold signatures (MuSig2 and FROST) – to custody BTC in a multi-party vault with strong security and privacy. A decentralized federation of signers (node operators) collectively controls the BTC vault using threshold cryptography, eliminating any single point of failure. These signers are economically bonded by the SatsFlux native token (with a fixed 500 billion supply) to align incentives, and can be slashed for misbehavior, ensuring the safety of the peg.
Users can seamlessly deposit BTC and receive sBTC on their chain of choice, or burn sBTC to redeem native BTC back to their Bitcoin address. The protocol is designed to be chain-agnostic: sBTC can be minted on multiple chains, enabling Bitcoin liquidity to flow into Ethereum DeFi, Layer-2 scaling networks like Arbitrum and Base, as well as non-EVM ecosystems like Solana. A novel multi-chain routing layer coordinates these operations, allowing sBTC to move between chains efficiently, either via direct burn-and-remint or via redemption to Bitcoin when needed.
This whitepaper provides a comprehensive deep dive into SatsFlux’s architecture and design. We detail the technical implementation of the Bitcoin vault and threshold signature scheme, the end-to-end BTC↔sBTC bridging process, and the smart contracts that manage minting, burning, and cross-chain attestations. We also outline the protocol’s security model and threat mitigation strategies, including how economic incentives and cryptographic mechanisms protect against theft or fraud. Additionally, we present the SatsFlux tokenomics – covering distribution, utility in staking and governance, and deflationary measures – along with the governance framework that empowers the community to steer the protocol’s evolution. Operational considerations like audits, emergency circuit breakers, and maintenance procedures are described to show how SatsFlux will be run securely in production. Finally, we share a roadmap starting in Q3 2025 that highlights key milestones from testnet to mainnet and beyond, and include visual diagrams to aid understanding of the system’s architecture, workflows, and timeline.
In summary, SatsFlux aims to unlock the full potential of Bitcoin in the multi-chain ecosystem by providing a secure, decentralized bridge. Bitcoin’s $500+ billion market can thus be accessed in Ethereum’s smart contracts, DeFi on various L2s, Solana’s high-speed environment, and future networks – all without users relinquishing custody of their BTC to a centralized intermediary. SatsFlux combines the robustness of Bitcoin with the versatility of modern blockchains, delivering a solution for BTC holders and developers to utilize Bitcoin seamlessly across the crypto universe.
Introduction & Problem Framing
Bitcoin is the most liquid and widely-held cryptocurrency, but its utility is largely constrained to the Bitcoin network’s limited scripting and transaction capabilities:contentReference[oaicite:0]{index=0}. As decentralized finance (DeFi) and novel smart contract applications have flourished on other chains, a major opportunity has emerged: enabling Bitcoin holders to participate in these ecosystems without giving up their BTC. Currently, the primary way to use BTC in, say, Ethereum DeFi, is via tokenized Bitcoin – an on-chain representation of BTC bridged from the Bitcoin network:contentReference[oaicite:1]{index=1}. However, existing BTC bridging solutions come with significant trade-offs in security, speed, and decentralization.
The most popular tokenized Bitcoin today is Wrapped Bitcoin (WBTC), which holds about 0.7% of all BTC supply as ERC-20 tokens on Ethereum:contentReference[oaicite:2]{index=2}. WBTC is fully custodial: users hand BTC to a centralized custodian (BitGo and partners), who then mints WBTC:contentReference[oaicite:3]{index=3}:contentReference[oaicite:4]{index=4}. This model inherits the counterparty risk of the custodian – violating the “not your keys, not your coins” principle:contentReference[oaicite:5]{index=5}. Other federated bridges like Liquid (by Blockstream) use a fixed set of functionaries (15-of-15 multisig) to custody BTC and issue L-BTC on a sidechain:contentReference[oaicite:6]{index=6}:contentReference[oaicite:7]{index=7}. While Liquid improves privacy and speed, it remains a closed federation of companies with a static signer set:contentReference[oaicite:8]{index=8}. More recent efforts like RenBTC attempted to decentralize the custodian by using a threshold of nodes and a bonding token, but Ren ultimately failed to fully decentralize and faced collapse when control remained with its team:contentReference[oaicite:9]{index=9}. Clearly, a more trust-minimized yet practical solution is needed.
Research and development in this area have accelerated. Projects such as tBTC v2 (by Threshold Network) and sBTC (by Stacks) are pioneering decentralized bridges. tBTC uses threshold cryptography with a large, dynamically selected group of signers and a staking model to secure BTC deposits:contentReference[oaicite:10]{index=10}. It eliminates the need for each deposit to be overcollateralized by enabling an “honest majority” assumption among signers:contentReference[oaicite:11]{index=11}. Stacks’ sBTC uses a pegging system tied into Stacks’ consensus and 15 community-elected signers initially, with plans for a rotating, open membership governed by the Stacks blockchain:contentReference[oaicite:12]{index=12}:contentReference[oaicite:13]{index=13}. These designs strive for decentralization: sBTC’s signers lock up STX tokens and earn BTC rewards via Stacks’ Proof-of-Transfer, aligning incentives:contentReference[oaicite:14]{index=14}, while tBTC’s signers stake T tokens and can be randomly selected into signer groups, with cryptoeconomic assumptions limiting any one staker’s influence:contentReference[oaicite:15]{index=15}.
Despite these advancements, bridging Bitcoin remains challenging. Bitcoin’s lack of a native smart contract platform means verifying Bitcoin transactions on other chains is non-trivial. Solutions like simplified payment verification (SPV) relays can allow an Ethereum contract to validate Bitcoin proofs:contentReference[oaicite:16]{index=16}, but running a light client on-chain is costly. As a result, many bridges rely on an external set of witnesses (guardians or signers) to attest to events across chains:contentReference[oaicite:17]{index=17}. This introduces a new “trust layer” – ideally decentralized and economically secured, but in practice sometimes a weak point. Indeed, cross-chain bridges have proven to be lucrative targets for attackers: from 2021 to 2024, around 50 bridge attacks resulted in over $4 billion in stolen assets:contentReference[oaicite:18]{index=18}, accounting for nearly 40% of all crypto funds lost to hacks in that period. The industry has learned painful lessons from these exploits, underscoring the need for rigorous security in bridge design.
SatsFlux is designed in response to this backdrop. It seeks to combine the strongest elements of recent innovations into a single protocol that is highly secure, permissionless, and useful from day one. The core problem SatsFlux addresses is how to allow BTC to flow into other chains’ applications without introducing custodial risk or undue friction. Our approach is to leverage threshold cryptography and Bitcoin’s own improvements (Taproot/Schnorr signatures) to create a vault that looks to Bitcoin like a single normal user, but is in fact controlled by a decentralized network of signers off-chain. On the destination chains, we implement robust smart contracts that only mint or burn sBTC when authorized by a valid threshold attestation from the signers or when provable Bitcoin transactions have occurred. By requiring multiple signers to cooperate (and placing economic stakes at risk for each signer), we minimize trust in any single party. In short, SatsFlux aims to be a “best of both worlds” solution: hard security guarantees close to Bitcoin’s own, and the flexibility and speed needed for integration with modern blockchains.
We will now present an overview of the SatsFlux architecture followed by detailed sections on each aspect of the system. We start with the high-level architecture and how the components interact, then dive into the Bitcoin vault implementation and cryptographic underpinnings. Subsequent sections explore the cross-chain bridging protocol, multi-chain routing, smart contract specifics on each chain, the risk and incentive model, and practical guidance for developers and node operators. Finally, we outline how the protocol’s tokenomics, governance, and operational plans ensure a sustainable ecosystem and responsiveness to future needs.
Architecture Overview
SatsFlux comprises three primary components working in concert:
Bitcoin Vault: A Taproot-enabled output on the Bitcoin network controlled by a threshold of SatsFlux signers. This is where all BTC backing sBTC is held. Funds move into this vault when users deposit, and out from it when users redeem.
Signer Network: A decentralized set of node operators (signers) who collectively manage the Bitcoin vault and coordinate actions across chains. Signers run SatsFlux software that monitors both Bitcoin and the supported destination chains. They participate in threshold key generation, sign transactions to release BTC from the vault, and sign attestations that authorize minting/burning of sBTC on other chains. To participate, each signer must stake a significant amount of SatsFlux’s native token (ticker symbol, say, SATS) as collateral, which can be slashed for misbehavior.
Smart Contracts on Destination Chains: On each integrated blockchain (Ethereum, Arbitrum, Base, Solana, etc.), SatsFlux deploys a set of smart contracts that manage the minting and burning of sBTC and enforce the bridging logic. These contracts include the sBTC token contract (ERC-20 on EVM chains, SPL token on Solana), and a bridge governance contract or verifier contract that accepts threshold signature attestations from the signers. Only when the required threshold of signers has validated an event will the contracts mint or release tokens. These contracts also handle user actions (e.g. users calling a redeem function to burn sBTC and trigger a BTC payout).
The figure below illustrates the high-level architecture and flow between Bitcoin, the SatsFlux signers, and two example destination chains (one EVM-based, one Solana):
:contentReference[oaicite:19]{index=19}
Figure: SatsFlux Architecture Overview – The signer network controls a Bitcoin vault via threshold signatures, and coordinates minting and burning of sBTC on multiple chains (Ethereum/Arbitrum/Base as EVM examples, and Solana as an example non-EVM chain). Signers stake the native SATS token to participate and can be slashed for misbehavior. Bold arrows indicate the flow of assets (BTC or sBTC) during peg-ins (BTC deposit, mint sBTC) and peg-outs (burn sBTC, release BTC).
At a high level, the lifecycle of a cross-chain transfer in SatsFlux is as follows:
BTC to sBTC (Peg-in): A user who wants sBTC on another chain initiates a deposit by sending BTC to the SatsFlux Bitcoin vault address (a Taproot address). The signer network detects the incoming Bitcoin transaction (after sufficient confirmations) and collectively signs an attestation that this deposit occurred and is final. The attestation is submitted to the target chain’s SatsFlux contract (either by one of the signers or by the user providing proof), instructing it to mint the equivalent amount of sBTC to the user’s address. As a result, BTC is locked in the vault and sBTC appears on the target chain.
sBTC to BTC (Peg-out): A user holding sBTC can redeem it for native BTC. On the chain where the sBTC resides, the user calls the SatsFlux redemption function (or uses the SatsFlux SDK) to burn their sBTC, specifying a Bitcoin address to receive BTC. The signer network observes this burn event (after it is finalized on that chain) and then collaboratively signs a Bitcoin transaction to release the corresponding BTC from the vault to the user’s provided Bitcoin address. Once that Bitcoin transaction is confirmed on-chain, the user has their BTC back. The protocol ensures that the burned sBTC is taken out of circulation, maintaining the 1:1 peg.
Direct sBTC Transfers Between Chains: SatsFlux also supports routing sBTC from one chain to another without returning to Bitcoin in between. In this case, a user would burn sBTC on Chain A and request minting on Chain B. The signers treat this as a coordinated burn-and-mint: they verify the burn on Chain A (locking in the fact those tokens are destroyed) and then authorize minting the same amount on Chain B for the same user. This operation is similar to a two-step peg-out followed by peg-in, but optimized as a single cross-chain message. It avoids moving the BTC itself, since the total sBTC supply remains backed by the vault but is now reallocated to Chain B. Such transfers still require threshold attestation to prevent double-spending of sBTC across chains.
All three flows rely heavily on the signer network’s ability to securely witness events and agree on actions. The heart of SatsFlux’s security lies in the threshold signature scheme and the economic design around signers. We therefore next explain the Bitcoin vault implementation and how Taproot and threshold signatures are utilized to achieve a robust multi-signature vault.
Technical Deep Dive: Bitcoin Vault Implementation
The SatsFlux Bitcoin vault is a specially constructed Bitcoin output (address) that is controlled by the collective action of the SatsFlux signers. With Bitcoin’s 2021 Taproot upgrade, it became possible to create a single on-chain address which in reality can hide a complex spending condition behind it. SatsFlux takes advantage of this by using Taproot’s key path spends combined with a threshold multisignature. In simple terms, the vault is a Taproot UTXO whose public key is an aggregate of all the signers’ keys. As long as enough signers collaborate to produce a valid signature, the Bitcoin UTXO can be spent. Outsiders cannot tell whether the UTXO is controlled by one key or many – this enhances both privacy and efficiency:contentReference[oaicite:20]{index=20}. On-chain, a spend from the vault looks like any other Taproot transaction with a single Schnorr signature.
At genesis, the initial set of signers performs a Distributed Key Generation (DKG) ceremony to produce the vault’s private key shares and the corresponding Taproot output key. This can be done using either the MuSig2 protocol (if we required all signers to sign) or the FROST protocol (to allow a threshold subset to sign). SatsFlux opts for a threshold scheme (e.g. FROST) to ensure the system can function even if some signers are offline or lost. In practice, an m-of-n threshold (such as 8 of 12, or 13 of 20, etc.) will be chosen by governance to balance safety and liveness. FROST allows the initial key to be generated in a distributed manner without a trusted dealer, meaning no single entity ever knows the full private key:contentReference[oaicite:21]{index=21}. Each signer ends up with a key share that they keep secret. The Taproot output key is then computed such that any valid threshold of shares can produce a Schnorr signature on behalf of that key.
When a user deposits BTC, they actually send it to a fresh address derived from the vault key. SatsFlux may utilize derivation paths (e.g., using different internal Taproot addresses) for load balancing or privacy. But conceptually, all deposits land in an address controlled by the same collective key. To spend the BTC (for redemptions), the required number of signers engage in a signing protocol (FROST signature generation) to produce a single Schnorr signature that authorizes the transaction. This signature, along with the Taproot public key, is all that is put on-chain:contentReference[oaicite:22]{index=22}; individual signer identities or their shares are never revealed. Thus, the vault can make outgoing BTC payments compactly and privately.
An enhancement we include is the use of Taproot’s script-path as a backup. In case the threshold network completely fails (for example, if too many signers are offline or lost), an alternative spending path can be defined. This might be a timelocked emergency multisig (e.g. a 2-of-3 backup key held by the SatsFlux foundation or a DAO-controlled wallet) that can be used to recover funds after a certain time with public transparency. Such a script-path would only be revealed/used in dire emergencies, preserving the key-path privacy during normal operation:contentReference[oaicite:23]{index=23}:contentReference[oaicite:24]{index=24}. The existence of this escape hatch and its parameters (timelock duration, backup key holders) would be disclosed upfront for community trust and could be governed.
To summarize, the Bitcoin vault’s implementation leverages:
Taproot key aggregation: combining signer public keys into one, enabling the vault UTXO to be controlled by a single aggregated public key:contentReference[oaicite:25]{index=25}.
Threshold signature scheme (FROST): allowing a subset of signers (threshold) to sign transactions without revealing which subset or requiring all signers every time:contentReference[oaicite:26]{index=26}. This ensures redundancy and flexibility (e.g., a threshold of 7-of-10 can tolerate 3 signers being offline).
Interactive signing rounds: The signing protocol itself requires coordination (FROST involves a two-round signing process similar to MuSig2’s two rounds:contentReference[oaicite:27]{index=27}). SatsFlux signers will utilize a secure p2p network to exchange the necessary messages during signing. This network could be based on libp2p or another encrypted messaging bus.
On-chain efficiency: Because of key aggregation, the on-chain footprint of spending from the vault is minimal – just one public key and one signature (plus perhaps a Taproot merkle path if script-path is used):contentReference[oaicite:28]{index=28}. This is much more efficient than traditional Bitcoin multisig (which would reveal all public keys and signatures). As a result, fees for moving BTC out are lower, and the transactions are indistinguishable from normal single-sig spends, aiding privacy:contentReference[oaicite:29]{index=29}.
All BTC that backs sBTC is held in this vault (or potentially sharded across multiple vault addresses – see below). Importantly, the total sBTC minted on all chains will never exceed the amount of BTC in the vault (minus any outstanding redemption requests in progress). This 1:1 backing is verifiable by checking the vault’s Bitcoin balance and the total supply of sBTC across chains (SatsFlux will likely provide a dashboard or block explorer tools for this purpose). Anyone can observe the vault addresses on the Bitcoin blockchain to verify that reserves equal or exceed sBTC circulating supply:contentReference[oaicite:30]{index=30}.
Multiple Vaults: As an added security measure, SatsFlux can adopt the approach of periodically rotating to new vault addresses. This is similar to tBTC v2’s concept of “many wallets”:contentReference[oaicite:31]{index=31}. For example, a new threshold key can be generated every X months or whenever the current vault accumulates more than Y BTC. Deposits would then shift to using the new vault address, while older vaults still hold their funds until those are redeemed. This limits the blast radius of a potential compromise (if an old key was somehow weakened over time, new deposits wouldn’t be affected). It also provides forward security: even if an attacker amasses a large amount of stake aiming to influence the signer set, it would only affect future vaults, not past ones:contentReference[oaicite:32]{index=32}. The threshold for each vault is fixed at creation, and governance could tune parameters like vault max size or rotation frequency. SatsFlux’s architecture supports multiple concurrent vaults, with the signer network managing a registry of active vault keys. On the Bitcoin side this just means multiple UTXOs (one per vault key); on the sBTC side, the contracts need to recognize deposits going into any registered vault address as valid for minting.
Now that we have covered how BTC is held and controlled, we proceed to explain the cryptographic schemes (MuSig2 and FROST) in a bit more detail, as they are central to the trust assumptions and operation of SatsFlux’s signers.
Threshold Signatures: Taproot, MuSig2, and FROST
SatsFlux’s security is rooted in threshold cryptography. In a threshold signature scheme, the private key controlling funds is split among participants, and a minimum number of them must cooperate to produce a signature:contentReference[oaicite:33]{index=33}. Participants cannot individually spend the funds, nor learn the full private key, providing both security against insider theft and fault tolerance against outages.
Two key protocols form the foundation for SatsFlux’s approach:
MuSig2: An n-of-n multi-signature scheme for Schnorr signatures. MuSig2 (Music Signature 2) allows n signers to produce one combined signature in two communication rounds:contentReference[oaicite:34]{index=34}. All n must participate; the scheme doesn’t natively support a subset threshold (that’s where FROST comes in). MuSig2 is used primarily for key aggregation in Taproot – it ensures that the Taproot key in the vault truly represents multiple signers without revealing them:contentReference[oaicite:35]{index=35}. If SatsFlux ever needed all signers to sign (for example, for certain administrative actions or during key rotation), MuSig2 could be applied. However, requiring unanimity is risky for routine operations due to potential liveness issues:contentReference[oaicite:36]{index=36}. MuSig2’s importance is largely in the setup phase (creating the initial aggregated key) and it underpins how we think about combining keys and signatures in a Schnorr context.
FROST (Flexible Round-Optimized Schnorr Threshold signatures): A t-of-n threshold signature scheme for Schnorr. FROST builds on Schnorr’s linearity to enable any subset of size t to sign, while less than t cannot:contentReference[oaicite:37]{index=37}. It introduces a distributed key generation (DKG) and signing protocol that is round-efficient (typically two rounds) and secure against malicious participants. FROST is the scheme SatsFlux signers use day-to-day to authorize BTC spends and to sign cross-chain attestations. In the DKG phase, all n signers jointly produce key shares and a group public key (which becomes the Taproot key). The threshold t is defined as part of this – for example, with 10 signers and t=7, any 7 can sign. During signing, exactly t (or more) signers exchange nonces and partial signatures to compute the final signature. The protocol ensures that if fewer than t try to collude, they cannot forge a signature, and they gain no information about the key beyond their own share. A nice property of FROST (and MuSig2) is that the resulting signature is a standard Schnorr signature verifiable by any Bitcoin node using the aggregated public key:contentReference[oaicite:38]{index=38}; no special verification logic is needed on-chain.
The interplay of these schemes in SatsFlux is as follows: we use a Taproot output (which inherently allows a single aggregated key). The aggregated key could conceptually be derived via MuSig2 or a similar process among all signers. However, to incorporate threshold (t-of-n) ability, we rely on FROST’s DKG to create the shares. Essentially, we treat the entire set of n signers as participants in FROST with threshold t. The group’s public key from FROST serves as the Taproot output key:contentReference[oaicite:39]{index=39}. MuSig2’s role is implicit since FROST’s signatures are Schnorr-compatible (MuSig2 itself can be seen as a special case of threshold where t=n). By using FROST, we gain the threshold property directly.
During normal operations, when signers need to sign (for BTC spending or for an attestation message), the following occurs:
One signer initiates the signing session (e.g., when a user requests a redemption, a signer will start the process to sign the BTC transaction paying that user).
Each of the t signers collects a fresh nonce and shares commitments to their nonce with the others (Round 1 of FROST signing):contentReference[oaicite:40]{index=40}. They also receive each other’s commitments.
In Round 2, they each produce a partial signature over the message (the Bitcoin transaction or attestation payload), using their secret key share and the combined nonce and message. These partial signatures are broadcast to the group.
A designated combiner (could be one of the t signers, or all independently) sums up the partial signatures to produce the final Schnorr signature.
The entire process requires only two rounds of communication among the signing subset, which is efficient in practice, potentially completing within a few seconds over the internet. The network latency is the main factor, as the computations (elliptic curve operations) are relatively fast.
It’s important to note that FROST assumes signers follow the protocol honestly during signing. Misbehaving signers (e.g., sending invalid shares or refusing to cooperate) can be detected, and SatsFlux has mechanisms to handle this (like skipping a non-cooperative signer or slashing if malicious intent is provable). A robust protocol might incorporate signature aggregation retry logic – if one signer fails to provide their share in time, the protocol could attempt to swap in an alternate signer (if >t signers are available, any t of them suffice) or restart the round excluding the faulty one.
An additional complexity is key refresh and signer changes. Over time, the set of signers may change (due to governance decisions or churn in staked participants). Refreshing the key shares or rotating to a new key requires coordination. SatsFlux can perform periodic key rotations through the DKG process: e.g., every year or when a certain number of signers have changed, a new FROST key can be generated, and funds moved to a new Taproot output. During a rotation, signers would collaboratively transfer the BTC from the old address to the new address (which they control under the new key). Such transfers can be done in batches and would be public on-chain events (with notice given to users if any downtime or deposit address changes are needed). The flexible design ensures the system can adapt as participants come and go, without impacting users or requiring trust in a fixed federation.
In summary, through Taproot, MuSig2, and especially FROST, SatsFlux achieves a decentralized yet efficient control of Bitcoin funds. The signers are collectively the “key holders” of the BTC, but no individual can move funds unilaterally. The threshold model means the system can tolerate some fraction of signers being compromised or offline, and still operate safely. This design significantly raises the bar for any adversary: they would need to compromise at least t signers to steal funds, and even then their actions would be evident (and subject to slashing and legal recourse). Meanwhile, honest users and signers benefit from the privacy (no on-chain footprint of multi-party control) and lower transaction fees that Taproot and Schnorr signatures provide:contentReference[oaicite:41]{index=41}.
Having covered the cryptographic core, we now turn to the protocol that sits on top: how SatsFlux actually bridges assets between Bitcoin and the other blockchains using this signer network.
BTC ↔ sBTC Bridge Design
The bridging protocol defines the rules and message flows for moving BTC into and out of the SatsFlux system (minting and redeeming sBTC). Here we detail the sequence of events and the roles of various components for each direction.
Peg-in: Depositing BTC and Minting sBTC
When a user wishes to obtain sBTC on a target chain (e.g., Ethereum), they will perform a peg-in. The process is as follows:
Deposit Address Generation: The user (via the SatsFlux web app or SDK) requests a deposit. The SatsFlux system provides a Bitcoin deposit address. This address could simply be the main vault Taproot address if all deposits go to one address. However, to simplify tracking and return of funds, SatsFlux is likely to give each deposit its own address (internally derived from the master key). For example, using BIP32 hierarchical derivation, each user request yields a unique Taproot address that the signers’ wallet can spend from. The mapping of deposit addresses can be deterministically derived by signers.
User Sends BTC: The user sends the desired amount of BTC to the provided address. They will typically specify on the interface which chain they want to receive sBTC on and their address on that chain. This information (target chain and destination address) might be encoded in a memo or otherwise linked to the deposit (via the SatsFlux off-chain coordination server or simply by the user input in the dApp).
Confirmation Monitoring: The signer network watches the Bitcoin blockchain for the deposit transaction. Once the deposit is detected, signers wait for a configurable number of confirmations (e.g., 6 confirmations, ~1 hour, which is a common standard for Bitcoin finality). The required confirmations can be tuned via governance – fewer confs yield faster minting but slightly less security against chain reorgs. SatsFlux might adopt a dynamic approach (e.g., 3 confirmations under normal conditions, 6 if value is high or Bitcoin’s hash rate is volatile).
Attestation of Deposit: After the required confirmations, the signers form an attestation: essentially a message that “Deposit X BTC from Bitcoin address Y to vault address Z observed, intended for user U on chain C.” The message would include details like the Bitcoin transaction ID, the amount, the target chain ID, and the target recipient address (the user’s address on that chain). All signers (or a threshold of them) then produce a threshold signature on this attestation. This results in a single signature that can be verified by the SatsFlux contract on the target chain, using the known public key of the signer group (or the set of allowed signer public keys). In practice, on EVM chains, verifying a Schnorr signature inside a smart contract is non-trivial directly; instead, SatsFlux may use an alternative verification approach:
One approach is to give each signer an Ethereum key and have them individually sign and submit approvals on-chain, which the contract counts until threshold. However, this is on-chain heavy and leaks signer identities.
A better approach is an off-chain aggregated signature that one designated signer submits along with a bitmap or index of which signers participated. The contract can verify it by doing a series of EC multiplications (or using ecrecover if it’s an ECDSA signature). Alternatively, for EVM, using threshold ECDSA might be considered so that the signature can be verified by a simple ecrecover call. There are trade-offs here: threshold ECDSA vs threshold Schnorr. SatsFlux will likely implement a solidity verifier for Schnorr signatures (which is possible via precompile for secp256k1 or via alt BN128 and mapping, or using an off-chain relay like an optimistic oracle to validate signature).
For Solana or other chains, similar logic applies – for instance, Solana has a system instruction for validating Secp256k1 signatures, which can be used to verify the threshold signature against the signer network’s pubkey.
Minting sBTC: Upon verifying the attestation signature, the smart contract on the target chain mints the appropriate amount of sBTC to the user’s address (minus any fee, if applicable – see “Fees” later). This increases the total supply of sBTC on that chain (and globally). Now the user effectively has a token representing their BTC, which they can use in DeFi or other apps on that chain.
Record Keeping: The protocol records internally (off-chain among signers, and on-chain via events) that this amount of sBTC is now outstanding corresponding to that BTC deposit. From this point, either the user will eventually redeem, or they might transfer the sBTC to others, etc. The peg remains 1:1 because the BTC is locked in the vault.
Notably, this peg-in flow does not require any centralized party to custody funds during the transfer. It is all handled by the Bitcoin network and the threshold attestation to the target chain. It is similar to the “lock-and-mint” pattern common to many bridges:contentReference[oaicite:42]{index=42}, but here the “lock” is done on Bitcoin and watched by decentralized signers, rather than relying on a single custodian to acknowledge it. In essence, the SatsFlux signers act as a distributed oracle and minting authority, constrained by the protocol rules.
Illustrative Example (Peg-in):
Alice wants to move 0.5 BTC from her Bitcoin wallet into Ethereum as sBTC. She uses the SatsFlux web app, selects Ethereum as the target, connects her Ethereum wallet (to provide her address), and is shown a unique Bitcoin deposit address. Alice sends 0.5 BTC to this address. After ~30 minutes and 3 confirmations, the SatsFlux signers detect Alice’s deposit. They create an attestation payload: “0.5 BTC received in vault for Alice’s ETH address 0xABC...DEF”. The signers collectively sign this payload. One signer (or a watcher service) submits the attestation and signature to the SatsFlux Ethereum contract’s mint function. The contract verifies that at least (say) 8 of 12 signers (the threshold) have signed the message by checking the aggregated signature. Verification passes, so the contract mints 0.5 sBTC to Alice’s Ethereum address. Alice can now see 0.5 sBTC in her wallet on Ethereum and go use it (trade on a DEX, provide liquidity, etc.). Meanwhile, the 0.5 BTC is secured in the vault on Bitcoin, visible on-chain. If Alice or anyone audits, they’ll see that vault’s total has increased by 0.5 and matches the total sBTC minted system-wide.
Peg-out: Burning sBTC and Releasing BTC
For the reverse direction, a user holding sBTC on some chain can destroy those tokens to retrieve the equivalent BTC from the vault. The peg-out process is somewhat mirror to the peg-in:
Burn Request Initiation: The user calls the redeem or burn function on the SatsFlux contract of the chain where their sBTC resides. They specify the amount to redeem and provide a Bitcoin address to receive the BTC. Optionally, the user might also specify a refund address on the same chain (for example, in case the redemption fails or times out, the protocol could refund sBTC) – but ideally failures are rare.
Token Burn: The contract will lock or burn the sBTC amount from the user. One approach is that the sBTC token contract could transfer the tokens into a custody address (controlled by signers or a burn address) pending completion. Alternatively, the contract could immediately burn (reduce total supply) and record the pending redemption internally. For simplicity, consider that the sBTC is removed from circulation immediately, which keeps the accounting clean – the total supply on that chain is reduced by the redeemed amount, and a record “user X burned Y sBTC for BTC address Z” is logged.
Event Emission: This burn action emits an event on-chain with the details (user, amount, BTC destination). The SatsFlux signers are continuously monitoring the events on each chain (via WebSocket or filters on Ethereum, via RPC on Solana, etc.). When the redemption event is seen and considered final (finality on the chain might mean waiting a few blocks on Ethereum or ensuring it’s checkpointed on Arbitrum, etc.), the signers begin the BTC release process.
Bitcoin Transaction Construction: The signers construct a Bitcoin transaction that spends the required amount from the vault UTXO(s) to the user’s provided Bitcoin address. The transaction will also include any required fee for miners (which may be taken from the redeemed amount or from a fee pool – see Fee discussion). The output to the user will be exactly the amount of BTC they burned in sBTC (minus fee if applicable), preserving the 1:1 value. This transaction is not yet signed.
Threshold Signing (BTC Release): The signers enter a threshold signing session (as described earlier with FROST) to produce a valid signature for the vault key on the transaction. If the vault UTXO has enough balance to cover the redemption, they will likely also include change back to the vault (or to a new vault UTXO) if not all funds are being withdrawn. The transaction might be a consolidation if bundling multiple redemption requests together, but assume a simple case: one input (vault) one output (user). Once the signers generate the signature, the Bitcoin transaction is complete.
Broadcast Bitcoin Transaction: The transaction is then broadcast to the Bitcoin network. This can be done by all or several signers to ensure it propagates. The user could also be notified of the transaction ID (TxID) so they can watch for confirmation.
Confirmation and Completion: After the typical 6 confirmations (or configured number) on Bitcoin, the BTC is firmly in the user’s wallet on Bitcoin – the peg-out is effectively done. At this point, the system can consider the redemption finalized. The signers update their records (the vault balance decreased, etc.). The on-chain event plus the Bitcoin transaction together serve as proof the process was executed. The user can independently verify they received the correct amount on Bitcoin.
Attestation (Optional for record): In some designs, the signers might also submit an attestation back to the originating chain to confirm completion. For example, they could emit a “RedemptionCompleted” event including the Bitcoin TxID as confirmation. This could help if there’s any dispute or to automatically release any collateral. However, since the sBTC is already burned, the user has no further claims on-chain. The main purpose of a completion attestation would be for monitoring and maybe for slashing signers if they claimed to do it but didn’t (though if they didn’t, the user can prove by absence of a Bitcoin Tx).
The critical aspect in peg-out is timeliness and reliability. The user is effectively trusting that the signers will perform their duty once they burn their sBTC. To reinforce this trust, SatsFlux’s design includes slashing conditions: if signers fail to execute a valid redemption within a reasonable time, they can be penalized. For example, if after X hours the redemption isn’t completed, the user (or any watcher) can submit evidence to slash the responsible signers’ stake:contentReference[oaicite:43]{index=43}. This strongly incentivizes signers to act promptly. In practice, automation and good network connectivity should make the process quick – often the main delay will just be Bitcoin confirmations.
From the user’s perspective, peg-out can take on the order of an hour (assuming waiting for BTC confirmations). SatsFlux might allow an option for faster but slightly more expensive redemption by bumping Bitcoin fees or using techniques like CPFP (child-pays-for-parent) if the user is in a hurry and willing to pay a higher miner fee to accelerate confirmation.
Illustrative Example (Peg-out):
Bob holds 1.2 sBTC on Arbitrum and wants to get back BTC on Bitcoin. He initiates a redemption in the SatsFlux Arbitrum dApp, entering his BTC address. He burns 1.2 sBTC; the Arbitrum SatsFlux contract records this and emits an event. The SatsFlux signers see the event and form a Bitcoin transaction moving 1.2 BTC from the vault to Bob’s BTC address. 9 out of 13 signers (for example) sign it, and it’s broadcast. In about 10 minutes, Bob sees the pending 1.2 BTC transaction in his Bitcoin wallet. After 6 confirmations (~60 minutes), Bob’s wallet marks the 1.2 BTC as confirmed. Meanwhile, the Arbitrum sBTC supply decreased by 1.2 at burn time. The peg-out is done – Bob has his original asset back on its native chain, and the sBTC he had is out of circulation.
It’s worth noting how SatsFlux ensures consistency: every mint increases liabilities (sBTC supply) and increases assets (vault BTC), every burn + BTC release decreases liabilities and assets equally. The system is always fully reserved as long as signers only mint when BTC is deposited and only release BTC when sBTC is burned. This is enforced by the cryptographic auditability of events and the design of the contracts.
Finally, we consider the scenario of transferring sBTC between chains (without going through Bitcoin). This is essentially a combination of a peg-out on one chain and a peg-in on another, coordinated by signers:
Chain-to-Chain Transfers:
Suppose Carol has sBTC on Ethereum but wants it on Solana. Without SatsFlux’s direct transfer feature, Carol would have to redeem to BTC (burn on Ethereum, wait, get BTC, then deposit BTC again for Solana – a time-consuming process). Instead, SatsFlux can handle this in one step:
Carol initiates a “transfer” specifying source chain (Ethereum) and destination chain (Solana) and amount (say 0.3 sBTC).
On Ethereum, 0.3 sBTC is burned (just like a regular peg-out) with a notation that the destination is Solana address XYZ.
Signers witness the burn on Ethereum. Instead of making a Bitcoin transaction, they directly create an attestation for Solana to mint 0.3 sBTC to Carol’s Solana wallet (XYZ).
The signers ensure that the Ethereum burn is final (finalized block) and that those 0.3 sBTC are removed from Ethereum’s supply.
Then the threshold signature on the mint instruction for Solana is produced and submitted to the Solana SatsFlux program, which verifies and mints 0.3 sBTC (SPL tokens) to Carol’s Solana address.
No BTC moved in this process; the vault balance remained the same. Essentially, sBTC was teleported from Ethereum to Solana. This is sometimes referred to as a “burn-and-mint” across chains:contentReference[oaicite:44]{index=44}.
This demonstrates the flexibility of the SatsFlux system to operate in a multi-chain context. The peg-in and peg-out flows are the fundamental actions involving Bitcoin; once sBTC is on multiple chains, moving between those chains can be managed through coordinated burns and mints. We will talk more about the multi-chain routing layer in the next section.
Before moving on, let’s address how the system handles fees and incentives in the bridging process:
Bridge Fees: The protocol may charge a small fee for minting or redeeming to cover operational costs and reward signers. For instance, a 0.1% fee on peg-ins or peg-outs could be applied. In practice, SatsFlux might start with 0 fee to encourage adoption (similar to sBTC’s initial no-fee design:contentReference[oaicite:45]{index=45}) and later introduce fees governed by token holders:contentReference[oaicite:46]{index=46}. Any fees can be taken in BTC or sBTC. For example, when minting, the user sends a bit more BTC and the surplus is allocated as protocol revenue; when redeeming, the user might get slightly less BTC out than they burned in sBTC.
Bitcoin Miner Fees: Redeeming requires a Bitcoin transaction, which has a miner fee. SatsFlux will handle this by either subtracting the miner fee from the user’s amount (so the user effectively pays it), or by maintaining a fee pool funded by the protocol or signers. Many designs subtract to keep it simple: e.g., if Bob redeems 1.2 sBTC, he might receive 1.199 BTC and 0.001 BTC is used as fee. Transparency is important: users should see the estimated fee before confirming redemption. If network fees spike, SatsFlux might have to adjust dynamically or allow the user to specify an urgency level.
Signer Rewards: Signers who participate in signing could be rewarded out of fees. If fees are in BTC, signers might claim them periodically from an on-chain (Bitcoin or other chain) pool. Alternatively, signers could be rewarded in the SATS token from an incentive pool while users pay fees in the token or in BTC. Tokenomics section will elaborate on this.
Slashing Bonds: The signers’ staked tokens backstop the system. If signers maliciously mint sBTC without real BTC or fail to send BTC when sBTC is burned, their stakes are forfeit to slash. For example, if they attempted to cheat by minting 100 sBTC with no deposit, that would be detectable (no corresponding BTC deposit), and an observer could slash the signers’ stake (and presumably that sBTC would be invalidated). The economic model requires that the value of signers’ at-risk collateral exceeds the BTC they control, to disincentivize theft. We’ll detail this in the Risk Analysis section.
In conclusion, the BTC↔sBTC bridge design in SatsFlux closely mirrors the proven patterns of cross-chain asset wrapping:contentReference[oaicite:47]{index=47}, but with decentralization at its core. The deposit/withdrawal (peg-in/peg-out) primitives are handled by a distributed set of signers rather than a custodian, and these actions are codified in smart contracts for transparency and enforcement. Next, we describe how this extends to multiple chains and how SatsFlux handles routing of messages and assets in an environment where multiple blockchains are involved.
Multi-Chain Routing Layer
SatsFlux is designed from the ground up to be multi-chain. Bitcoin acts as the anchor for value, but sBTC can live on many chains simultaneously. This introduces the need for a routing/relay mechanism that can carry messages (like deposit attestations or burn proofs) between the Bitcoin network and all connected blockchains, as well as directly between those blockchains for chain-to-chain transfers. We refer to this as the multi-chain routing layer.
Key responsibilities of the routing layer include:
Disseminating deposit events from Bitcoin to the relevant chain’s contract (for minting).
Disseminating burn events from a chain to either Bitcoin (for redemption) or another chain (for re-minting).
Ensuring ordered, exactly-once processing of these events to avoid duplication or loss.
Providing any necessary intermediate translations (for example, if different chains have different transaction formats or finality conditions).
The SatsFlux signer network effectively functions as a decentralized relay. All signers run full (or light) nodes for the chains SatsFlux supports:
Bitcoin: likely a full node or an SPV client with mempool access to catch deposits.
Ethereum and Arbitrum/Base: likely JSON-RPC endpoints or direct connections to archive nodes to watch events.
Solana: a RPC/websocket connection to a Solana node to subscribe to events from the SatsFlux program and confirm transactions.
When an event of interest occurs (Bitcoin deposit, sBTC burn, etc.), each signer sees it and they collectively (by some consensus or at least agreement) decide to act on it. In practice, this doesn’t require a complex consensus algorithm since the order of independent events doesn’t matter much; what matters is ensuring the same event isn’t processed twice and conflicting events (like two attempts to mint the same BTC twice) can’t both succeed.
For distributing the data, SatsFlux can use a gossip network among signers. One signer might be the first to see a Bitcoin deposit and will gossip a message “Deposit with TxID X of amount Y, intended for chain Z, address A”. Others verify and sign it. Similarly, for burns, one signer on Ethereum sees the event and gossips “Burn of Y sBTC by address A for BTC address B (or for chain Z address A2 if cross-chain)”. This gossip then triggers the signing process for the threshold attestation or BTC transaction.
An important part of routing is addressing the differences in block times and finality:
Bitcoin → Other Chains: Bitcoin’s ~10 minute blocks and preference for ~6 confirmations means minting will have inherent latency. The routing handles this by simply waiting and then delivering the attestation to the target chain. Once delivered, the target chain usually finalizes much faster (Ethereum ~ minutes, Solana ~ seconds). So the slow part is Bitcoin.
Other Chains → Bitcoin: Ethereum and EVM chains have faster blocks, but we should wait for some level of finality (e.g., Ethereum ~12 blocks (~3 minutes) is usually safe, Arbitrum might wait for L1 confirmation (~10 minutes), Solana maybe wait for certain number of blocks or rely on its confirmation confidence). The signers will likely impose a small delay to ensure a burn event isn’t in a fork that gets reverted. After that, they create the BTC transaction and broadcast. Bitcoin confirmation adds further delay. The routing layer in this case is basically signers watching for finality and then moving to Bitcoin signing.
Chain A → Chain B: Here, the source chain’s finality and the destination chain’s processing need to be coordinated. SatsFlux likely will not use any additional networks (like an external message passing system) beyond the signers themselves. The signers serve as the oracle and messenger. This avoids reliance on separate bridging protocols (like no need to integrate Axelar or Wormhole because the signers themselves are effectively a custom bridge for SatsFlux). However, SatsFlux could leverage generic bridging infrastructure in the future if it proved beneficial (for instance, using something like IBC or LayerZero for some verification). Initially, the built-in approach is sufficient.
The figure earlier (SatsFlux Architecture) already depicted multiple chains connecting to the signer network. We can articulate it also as a hub-and-spoke model: the SatsFlux signers and Bitcoin vault are the hub, and each connected chain has a “spoke” (the smart contracts) that interact with the hub via off-chain signed messages. This is conceptually similar to designs like Wormhole (which uses guardian nodes to sign VAAs and each chain has contracts to verify those):contentReference[oaicite:48]{index=48}, or Axelar (which uses a decentralized validator set to sign and execute cross-chain calls, treating itself as a cross-chain network):contentReference[oaicite:49]{index=49}. Indeed, SatsFlux’s signers perform a role akin to Axelar’s validators for the specific case of Bitcoin bridging. The big difference is that SatsFlux’s network is focused on Bitcoin custody and transfers, and the signers have a direct stake in the system’s token rather than being a general cross-chain service.
To ensure reliability, the routing layer has to tolerate some signers failing to relay. This is naturally handled as long as enough signers see an event to sign it. Even if a few signers are asleep and miss a deposit, the majority will carry it out. The use of threshold for signature also applies to threshold for consensus: we don’t require 100% of signers to agree an event happened, just the threshold t. If one malicious signer tried to inject a fake event (like claiming a deposit happened that didn’t), they wouldn’t get others to co-sign it, so it would die out. Conversely, if an event is real, at least t honest signers will sign, achieving the threshold. This forms a kind of Byzantine fault tolerance implicitly – with up to (t-1) signers faulty, the system still works correctly, assuming an honest majority beyond that.
A tricky scenario is ensuring that a burn on one chain that is meant to trigger a mint on another chain cannot be replayed or double-processed. To prevent replay, the protocol should incorporate unique identifiers in messages, such as a nonce or sequence. For example, an attestation might include “Burn event number 42 on Ethereum block 12345…” and the target chain contract will not accept duplicate processing of the same event. Each event (deposit or burn) from each source is uniquely identified (Bitcoin TxIDs, or a combination of chain ID + block number + event index). The SatsFlux contracts will maintain a record of processed events (like a mapping of event IDs to boolean) to prevent double-minting or double-redeeming. This is similar to how bridges track a nonce or use the origin transaction hash to ensure idempotence.
In the case of a cross-chain transfer (A→B), effectively:
The burn on A is event ID E. Signers ensure that event E (burn on A) causes exactly one mint on B.
If Carol tried to reuse the same event E to mint again on another chain or the same chain, the contract would see E already processed and reject it.
Thus, consistency is maintained. The signers are incentivized to follow these rules because any deviation (like attempting to double mint) would be caught and result in slashing or a collapse of trust and token value (ruining their own stake).
One special aspect is Solana: in Solana, transactions and programs operate differently (more synchronous). The SatsFlux program on Solana might need to verify signatures within a single transaction (likely by including the signature as data and verifying via a secp256k1 signature verify instruction provided by Solana’s runtime). This means the entire attestation and threshold signature have to be packaged into one Solana transaction when minting. SatsFlux signers would basically produce a message and threshold sign it (like a Wormhole VAA) and one entity (could be a user or a designated relay) submits it to Solana’s program for verification and token mint. This is already a known pattern (Wormhole guardians do exactly this by signing VAAs off-chain and submitting to Solana program):contentReference[oaicite:50]{index=50}. We can follow that blueprint for any non-EVM chain integration.
In summary, the multi-chain routing layer of SatsFlux is essentially the logic and infrastructure by which the distributed signers observe and convey cross-chain events. It does not rely on a single server or centralized relayer; every signer can act as a relayer. The use of threshold signatures means that the ultimate “signal” that an event happened is just one authenticated message, which any party (even the end-user) can carry to the destination chain’s contract to trigger the action (mint or confirm redemption). This is important: users are not forced to trust a SatsFlux server to deliver the signature; they could manually do it if needed. For user-friendliness, though, SatsFlux will operate some relayer service that automatically posts the attestations on the user’s behalf (so they don’t have to, for instance, copy a signature blob from a Bitcoin explorer to an Ethereum transaction).
By decentralizing this routing and using open verification on-chain, SatsFlux ensures a trust-minimized bridge operation across all supported chains. Now, let’s delve into what actually exists on those chains – the smart contracts and on-chain modules that make sense of these messages and enforce the rules.
Smart Contract Module Specifications
SatsFlux deploys a set of smart contracts or on-chain programs on each supported blockchain (except Bitcoin, which uses the vault UTXO instead of contracts). These contracts govern the behavior of sBTC on that chain and interface with the signer attestations. In this section, we outline the architecture of these modules and key functions, focusing primarily on an EVM implementation (Ethereum/Arbitrum/Base) and noting differences for Solana or others where relevant.
Core Contracts on EVM Chains
On Ethereum and similar chains, the SatsFlux system uses multiple contracts to separate concerns and improve security:
SBTC (ERC20): The token contract for sBTC on that chain. It keeps track of balances, allows transfers, etc. It is a mintable and burnable ERC-20, but with restricted access: only the SatsFlux Bridge contract (or authorized agents) can mint or burn.
Bridge: The main logic contract that coordinates minting and burning. It has functions like mint(address to, uint256 amount, bytes calldata attestation) and burn(uint256 amount, string btcAddress). The Bridge contract is the one that verifies attestations from signers. It holds the list of signer public keys or an aggregated verification key. This contract ensures that:
Mint can only happen if a valid threshold signature attests to a BTC deposit or a burn on another chain.
Burn records the event properly and calls the SBTC contract to burn the tokens (since the Bridge likely has the authority to instruct SBTC to burn from a user).
BridgeState / Records: A support contract (or part of Bridge) that maintains state like processed deposit IDs, processed burn IDs, current supply, etc., to avoid double counting. This may be integrated in Bridge to simplify.
Governance/Parameters: A contract that holds configurable parameters (e.g., required confirmations, fees, list of valid vault addresses or signers) and possibly allows governance (through the SatsFlux DAO or multi-sig) to update them. It could be separate or part of Bridge, depending on upgradeability strategy.
Staking/Slashing (optional on target chain): Possibly a contract on one chain (maybe Ethereum mainnet) that holds the staked SATS tokens for signers and handles slashing events. This might not be deployed on every chain, maybe only one chain will be designated for staking. Alternatively, staking might occur on each chain where signers have to put collateral in each environment – but that’s complex, more likely there’s a single chain (like Ethereum mainnet) where signers stake and slashing decisions are made, regardless of where misconduct happened.
In a simple design, one could combine SBTC and Bridge into one contract (where the contract is ERC20 and has a special mint function requiring signature). However, separating them allows upgrading logic without changing token storage (using a proxy pattern if needed), and keeps the ERC20 interface standard (so wallets and explorers see SBTC as a normal token contract).
Minting (on EVM): The Bridge contract’s mint function will take in an attestation and a signature. For example:
function mint(address to, uint256 amount, bytes calldata sig, bytes calldata attestation) external { // Only allow specific caller? (Could be permissionless if anyone can present valid sig) require(!processedAttestations[attestationId]); // ensure not replayed bytes32 hash = keccak256(attestation); require(verifySignature(hash, sig), "Invalid threshold signature"); // Further parse attestation: ensure 'amount' and 'to' match the attestation data and it corresponds to an actual deposit processedAttestations[attestationId] = true; SBTC.mint(to, amount); }
The above is pseudo-code. The actual implementation might involve verifying multiple signatures or an aggregated signature. The verifySignature would implement the threshold signature verification. If using an on-chain list of signers, one could verify each signer’s ECDSA signature (like requiring k-of-n separate sigs). But more gas-efficient is verifying one combined Schnorr sig (which might require custom precompile use or even an off-chain verification with optimistic challenge – there are various approaches).
Burning (on EVM): The user typically calls SBTC’s approve for the Bridge contract to spend their tokens (or the Bridge uses an ERC677 style transfer with data). The Bridge’s burn function would then do:
function burn(uint256 amount, string calldata btcDest) external { // Pull tokens from user (assuming user approved Bridge as spender) SBTC.burnFrom(msg.sender, amount); emit Burned(msg.sender, amount, btcDest); }
This would emit an event that signers watch. Alternatively, the burn could be two-step: user calls SBTC.burn (which is allowed because Bridge contract gave them permission?), but likely simpler is having Bridge do it so it can emit the needed event with all info. We include btcDest (a string or bytes for a Bitcoin address) as part of the event so signers know where to send BTC. That event is what triggers redemption.
The Bridge contract on EVM will also include some administrative functions. For example, adding a new supported vault address (if rotating keys), or updating signer public keys (if a completely new set of signers is introduced via governance). These would be protected by governance permissions. In the early phase, this might be controlled by a multi-sig of project developers (with the intention to hand off to a DAO). Over time, token governance would allow updating these values (with constraints, e.g., you wouldn’t casually change signers without a full re-initialization of the protocol or migrating funds).
Security considerations: The contracts need to be extremely robust. They are the only place new sBTC can be minted, which is why verification of signatures and event uniqueness is paramount. A bug here could cause mis-mint (inflation without BTC) or lock funds. Auditing and formal verification will be done (see Security Operations section). Additionally, emergency pause is wise – a circuit breaker such as an option for governance or a security council to pause minting if an exploit is detected. The contracts could have a pause() that stops new minting (but ideally still allow burning so users can exit if needed). This is a common safety measure, though we aim to never use it.
Solana Program
On Solana, the on-chain program will be somewhat analogous but written in Rust. The state might be kept in a PDA (program-derived account) for sBTC mint and a Mint account for the token. Key differences:
Solana’s token (SPL token) for sBTC is managed by the program. We would create an SPL Mint for sBTC, where the program is the mint authority. The program then authorizes mints or burns similarly to the EVM approach.
The program will have an instruction for MintWithSignature(attestation, signature) where it verifies the threshold signature. Solana’s runtime provides a secp256k1 verification function which can verify up to 16 signatures in one tx. If our threshold is larger (like 8-of-12), one could either verify each signer’s ECDSA signature individually (if we decided to have signers also each have an ECDSA key, akin to what Wormhole did initially), or verify one Schnorr combined signature by manually implementing Schnorr verification (which might be possible given secp256k1 curve support). For simplicity, SatsFlux might assign each signer an Ethereum-like key pair and use those for attestation on Solana, verifying, say, 8 ECDSA signatures in the Solana tx (since 8 is <= 16, that fits). This is a trade-off: verifying multiple signatures on-chain in Solana costs compute units but is doable.
The program will have an instruction for BurnForBTC(amount, btcDest) which burns from the user’s token account and emits a custom event (log) or stores data for the off-chain signers to see. However, Solana doesn’t have an easily queryable log by external watchers in the same way – but signers can subscribe to the program’s events via the RPC.
State of processed events would be stored in a persistent account to ensure no double minting. Solana’s accounts might store a mapping of Bitcoin TxIDs processed or a bitset, etc. Because Solana is not as storage-cheap as EVM for arbitrary data, we might instead require that each deposit is processed only once because it corresponds to a unique signature that can’t be replayed (like including a nonce prevents reusing it anyway). Possibly we might not need heavy on-chain storage aside from a “last processed Bitcoin block” if we used a light client approach (if, say, verifying SPV proofs, but we currently assume just attestations).
The overall logic remains: only if a valid signature from signers is present will new sBTC be minted on Solana, and the program ensures one-to-one with vault deposits.
Integration with Other Chains
For every new chain integrated, SatsFlux needs to deploy similar mechanisms. EVM chains are relatively straightforward clones of the Ethereum contracts (with possibly different governance on each or a shared governance if bridging to those L2s). Solana we discussed. If, for instance, SatsFlux extended to other ecosystems (say, Cosmos via an IBC connected chain, or Polkadot via a parachain module), it would likely involve writing a module or smart contract that mimics the same behavior: verifying threshold signatures and minting/burning a native asset.
The design principle is to keep the on-chain logic as simple and generic as possible – basically a token mint and a signature validator. All the complexity of deciding when to sign is kept off-chain in the signer network, which can be updated more flexibly. This minimizes the surface for on-chain bugs. The contracts primarily guard against external adversaries (someone trying to submit a fake attestation) by virtue of cryptographic checks.
One might wonder: could an attacker try to bypass the signers and directly feed the contract with a made-up valid signature? In theory, if they somehow compromised the threshold keys or colluded with enough signers to produce a signature, then yes, they could mint unbacked sBTC – but that scenario implies the security of threshold cryptography broke down, which is exactly what the staking and slashing mechanisms aim to deter. The contract itself can’t distinguish a malicious signature if it’s cryptographically valid. That’s why the trust model is ultimately on the signers + stakes. We ensure that cost of collusion is high (stake slashing > value of theft) and ideally that signers are diverse (so collusion is unlikely outside of stake weight scenarios). This is elaborated in Risk Analysis.
Auditing and Transparency: The contracts will expose relevant information for users. For example, the totalSupply of sBTC is always queryable. We may also include a public view that returns the BTC vault addresses and current balances (though one can externally check via Bitcoin explorers). Also, all mint and burn events are public on each chain (via logs), which fosters transparency. We anticipate community-run dashboards that can show in real time the BTC reserve vs sBTC supply, recent mints/burns, etc., which is critical for trust (like a public proof of reserves monitoring):contentReference[oaicite:51]{index=51}.
Now that we have described both off-chain and on-chain components, we turn attention to the security analysis: how the system holds up against various threats and what slashing conditions and mitigation measures are in place.
Cryptographic Risk Analysis & Threat Model
SatsFlux must defend against a variety of threats since it involves a decentralized custodian of potentially large amounts of BTC and high-value tokens across chains. We outline the major risk factors and our approaches to mitigate them, focusing on both cryptographic (protocol-level) threats and economic/game-theoretic challenges.
Threats to the Bitcoin Vault and Signer Network
Signer Collusion / Key Compromise: The worst-case attack is if a subset of signers forming the threshold collude to steal the BTC in the vault. For example, in a t-of-n scheme, if t signers agree to sign a malicious transaction sending all BTC to an attacker’s address, they could bypass the intended process. SatsFlux mitigates this by making such collusion economically irrational and detectable. First, all signers have put up collateral (SATS tokens) whose value should exceed the value of BTC they control at any time. If they steal BTC, their stake will be slashed – a rational signer won’t do this unless their stake value has fallen or they expect not to get caught. Second, any unauthorized BTC move (say to an address not requested by a legitimate burn) would be immediately visible on-chain; a well-monitored system would raise alarms, and signers would know that acting maliciously will destroy confidence in the system (and thus the value of any token they hold). In tBTC’s analysis, even a staker with 35% of stake has negligible probability of controlling a wallet:contentReference[oaicite:52]{index=52} – in SatsFlux, if we have a large set of signers and random selection/rotation, the chance of any single entity controlling a threshold is extremely small. Additionally, having many signers means an attacker would have to breach many independent nodes (potentially globally distributed). The use of HSMs or secure enclaves by signers can further reduce key compromise risk. Ultimately, we acknowledge the risk isn’t zero – threshold security assumes fewer than t signers can be compromised. So we choose t and n to make that assumption very strong (e.g., if n=20, t might be 13; compromising 13 independent nodes without detection is very hard).
Signer Censorship / Non-participation: What if some signers refuse to sign either due to attack (DDoS) or malicious intent to freeze funds? As long as enough honest signers remain (≥t), the protocol can proceed. The threshold allows up to n-t signers to be unresponsive. For example, in a 13-of-20, up to 7 signers can drop offline, and the system still works. If more than that drop, the system halts for new actions until either some come back or an emergency key path is used. To mitigate targeted censorship (like certain users’ transactions being ignored), signers are supposed to sign all valid requests. If a subset tries to censor, the honest majority can still carry out signing. If, say, an attacker DDoSes 10 of 20 signers, the remaining 10 can’t reach threshold of 13 – but SatsFlux can have redundancies, like signers distributed across multiple cloud providers or able to use fallback communication channels (Tor, etc.). Also, if offline issue persists, rotation might be performed (replacing unresponsive signers via governance). Non-participation when expected (like not signing a redemption) is treated as misbehavior; if a signer consistently fails to perform, they might lose rewards or even be slashed if evidence shows they intentionally blocked a redemption.
Key Generation Phase Risks: The initial DKG could be attacked (e.g., a malicious participant could try to bias keys or abort halfway). Using well-vetted DKG protocols with safe aborts is important. If a signer doesn’t complete DKG, they can be kicked and replaced before launch. Also, broadcasting commitments in DKG ensures any cheating attempt (like revealing inconsistent shares) is detectable. We assume the initial key is set up correctly under the eyes of public (could even livestream or allow auditors to inspect logs). Alternatively, a ceremony akin to Zcash’s setup ceremonies could be done to generate randomness if needed. Once the key is set, as long as threshold holds, the scheme is secure.
Cryptographic Flaws: It’s worth noting the reliance on relatively new cryptographic schemes (MuSig2, FROST). These have been under peer review and are based on Schnorr/ECDSA which are long-studied. However, if a flaw in Schnorr’s security or an implementation bug (like nonce reuse leading to key leakage) occurred, that could be catastrophic (private key reconstruction). We mitigate by using battle-tested libraries (e.g., libsecp256k1 for Schnorr). We will get external audits of our crypto implementation. In production, signers should use robust nonce generation (ideally deterministic or from secure hardware RNG). The system’s design can also allow quick rotation if a flaw is discovered: e.g., if Schnorr was found to have an issue, we could halt operations and perhaps move funds to a script-path backup while patching.
Threats to the Bridging Process
Replay or False Attestations: A malicious party might try to replay an old deposit attestation to mint sBTC twice, or fabricate an attestation. This is prevented by design: the contracts track which deposits have been processed:contentReference[oaicite:53]{index=53}. Each deposit (Bitcoin TX) has a unique ID (the TXID) and once used to mint, it cannot be reused. Similarly, burns have unique IDs. The threshold signature ensures the attestation can’t be forged by outsiders – it requires cooperation of signers. So the main risk is if signers themselves sign something twice or incorrectly. They have no incentive to double-sign because it would be caught (the second time, the contract rejects it but the attempt would be evident on chain, marking them as malicious). If they somehow accidentally produced two different signatures for same event (unlikely if they coordinate properly), the contract simply ignores the duplicate.
Front-running and Timing: On chains like Ethereum, one might wonder if an attacker could front-run a user’s burn transaction with their own to maybe mess with routing. However, since each burn is tied to a specific user’s BTC address, front-running doesn’t help an attacker – they can’t divert someone’s BTC because they don’t know the user’s Bitcoin address (and even if they did, it’s the user who provides it). As for deposit, if an attacker sees a user deposit BTC and tries to quickly claim mint to a different address, they would need the signers’ signature to do so, which they can’t get. The user’s target address is embedded in what signers sign, so an attacker can’t alter that without invalidating the signature.
Partial Signer Compromise – Unauthorized Mint: Suppose an attacker compromises fewer than t signers, say 3 of 10, and those rogue signers attempt to mint sBTC without a deposit by producing a signature anyway. They can’t produce a valid threshold signature alone, so on-chain contract will reject it (signature won’t verify). They might try to bribe additional signers. Essentially, less than threshold can’t directly do damage except by disrupting operations. They could refuse to sign (censorship issue above) or try to confuse by spamming invalid signatures off-chain, but honest signers won’t relay those to chain. This scenario is essentially mitigated by needing threshold honesty.
Smart Contract Vulnerabilities: A bug in the on-chain contracts could be exploited. For instance, a logic error that allows unlimited minting without checking signature, or a flaw in signature verification code. This is mitigated by thorough audits and using standard libraries (like OpenZeppelin ERC20 for token, known good multi-sig verify algorithms). The contract is relatively small in scope, which is good. We also use upgradeable patterns – while controversial for decentralization, having the ability to patch a bug via governance or an admin multi-sig can be a lifesaver if a vulnerability is found. We will incorporate a timelock on upgrades (e.g., 2-day delay visible on-chain), so the community can withdraw funds or pause usage if a malicious upgrade were attempted by a compromised governance.
Destination Chain Risks: Each chain has its own security. If a chain gets 51% attacked or reorgs deeply (e.g., a PoW sidechain or a new L2 with weak safety), that could impact SatsFlux. For example, if a burn event on a sidechain is reverted after signers acted on it, there is a risk of inconsistency (they might have released BTC, but the burn “never happened”). To mitigate, SatsFlux will set conservative finality requirements on weaker chains (maybe wait longer or require checkpoints). If a chain is fundamentally broken, worst case we might pause operations on that chain (stop minting and burning) until it’s resolved. The Bitcoin side itself is robust (though one can consider long reorgs but 6 conf is historically safe). Ethereum and major L2s have strong security assumptions (L2 inherits Ethereum security if properly designed). Solana has had pauses but not reverts; still, we consider finality after maybe 32 slots (~16s) safe enough normally. We’ll be cautious and adapt parameters as needed by chain.
Bridge Liquidity and Insolvency: If somehow sBTC supply exceeded BTC in vault (should never happen unless signers misbehave or some technical glitch), that’s a serious problem as the peg is broken (not fully backed). The protocol design prevents this by ensuring no sBTC is minted without deposit. But consider scenarios like fee miscalculation or a rounding bug that minted a tiny excess, or theft of BTC from vault by external means (very unlikely if keys secure). In any such event, the emergency response might be to pause minting, and possibly initiate a “re-collateralization” by the DAO (e.g., use treasury funds to cover a shortfall, or slash signers to cover it). This is similar to how MakerDAO would handle a deficit by socializing losses or using insurance funds. SatsFlux will likely maintain some form of insurance or buffer (like a small percentage of all deposits is held as reserve or fees accumulate in a pool) to cover minor discrepancies. In an extreme case (like vault compromise), the best effort is to distribute remaining assets fairly and shut down that instance of the protocol – this is a doomsday scenario we strive to avoid through strong security up front.
Economic and Incentive Risks
Stake Value Volatility: The security model hinges on signers’ staked tokens (SATS) being valuable enough that losing them is worse than stealing BTC. If SATS price plummeted, the calculus might flip – signers might have less to lose. We mitigate this by potentially over-collateralizing in BTC terms. For example, require that at all times, the total stake of signers >= 150% of BTC under custody (similar to how tBTC v1 did):contentReference[oaicite:54]{index=54}. If SATS price falls, either reduce BTC capacity (don’t allow more BTC deposits until stake ratio is healthy) or require more stake from signers. This dynamic can be managed via governance triggers or automated (stake-to-BTC ratio parameter). Conversely, if BTC price surges relative to SATS, that ratio might drop, so adjustments would be needed. In short, risk parameters and possibly an emergency shutdown trigger if collateral falls too low might be prudent to avoid inviting theft.
Governance Attacks: Since governance can control parameters and possibly upgrade contracts, a malicious takeover of governance could theoretically rug the system (e.g., push an upgrade that lets them mint all sBTC). To reduce this risk, early on SatsFlux governance will likely be multisig or council-based and only decentralize gradually as the token distribution broadens. When fully decentralized, governance attacks are mitigated by making it impossible to directly steal funds through a single proposal – for instance, requiring multi-step processes or time delays. Also, the community and possibly external regulators would be watching large token holders. Having a diverse set of token holders (no single whale majority) is important. We plan to implement safeguards like timelocks and maybe requiring multiple steps (like a governance vote can only make changes if signers also sign off, creating a two-layer security – though that reintroduces trust in signers themselves for governance actions).
User Error and Phishing: While not a protocol flaw, users might send BTC to the wrong address (not the vault) or get tricked by scammers. SatsFlux will provide clear instructions and ideally integrated apps to reduce manual steps. If a user does send BTC to an unrelated address by mistake, unfortunately, that’s lost – SatsFlux signers can’t help since they only control the vault. We will emphasize caution and maybe provide UI warnings. For phishing (e.g., a fake SatsFlux dApp giving a wrong deposit address), that’s a general ecosystem challenge. We’ll publish official addresses and perhaps have ENS or other naming for our deposit addresses to verify authenticity. Ultimately, user education and good UI/UX are the main defenses here.
Slashing Conditions and Responses
SatsFlux implements slashing to penalize signers who violate protocol rules. The conditions that lead to slashing include:
Failure to sign a redemption (Liveness fault): If a redeem request is not fulfilled within a certain timeframe (e.g., 12 hours), any observer (including the user) can submit proof on the staking contract to slash the specific signer group responsible:contentReference[oaicite:55]{index=55}. Since signers operate in fixed groups for a vault, we can identify which group was supposed to sign. The slashing might be partial for a first offense or full if it’s clear they abandoned duties. The user might be compensated from the slashed stake (or an insurance fund) if they suffered loss (in this case, user’s sBTC was burned but no BTC delivered; one way to compensate is to remint the sBTC to them from insurance or just return their sBTC).
Signing a fraudulent attestation (Integrity fault): If signers mint sBTC without a real BTC deposit, or double mint, it will be detected as an excess in supply vs reserves or by the fact that an attestation references a non-existent or already-used deposit. Observers (watchdogs) could spot this on-chain. A slash would then be executed to seize the signers’ entire stake because this is effectively the worst behavior – an attempt to counterfeit assets. This condition requires an on-chain or cross-chain proof. In some designs, it might rely on a known good reference (like a Bitcoin light client proving no such deposit was made, which is complex) or simply the blatant evidence of double-use of an event. The challenge is if a majority of signers collude, they might also try to censor the slashing transaction. But since slashing would be on a different chain (like Ethereum), the colluders can’t censor that unless they also hold majority of stake (which they would in collusion scenario). If they have majority stake, they effectively could block a governance action too – so we assume collusion case is mainly deterred by economics rather than forcibly stopped by protocol.
Double-signing contradictory messages: If signers produce two different valid signatures for two conflicting events (e.g., two Bitcoin transactions spending the same UTXO to different addresses – i.e., an attempt to double-spend BTC from vault), this can be provably shown by revealing the two signatures and messages. Similar to double-sign slashing in consensus protocols (like Tendermint or Eth2), we will slash if that happens. Practically, it shouldn’t because signers coordinate and only sign one spend of a UTXO. But this covers Byzantine behavior where two subsets tried to fork the signing process. Evidence = both signatures + message hashes. This evidence can be submitted to slash them. Note: only one of the spends will confirm in Bitcoin (the other will be invalid if one got in first), but the very act of trying to double-spend indicates malicious signers.
Collusion with users (e.g., censoring others’ transactions for bribes): Harder to detect on-chain, but if evidence off-chain appears (like whistleblowers or consistently failing certain users’ requests), governance might decide to slash or remove signers for not acting in the protocol’s interest. This would likely be handled more by governance vote to remove and slash if misbehavior is suspected.
Slashing events ideally should be rare to nonexistent in a healthy system – their primary purpose is deterrence:contentReference[oaicite:56]{index=56}. We calibrate slash amounts to be meaningful: e.g., failing to sign might slash a percentage of stake or the rewards, but an actual fraud could slash 100% plus ban the signer. The slashed tokens might be partly burned (deflationary sink) and partly awarded to reporters (to incentivize community monitoring):contentReference[oaicite:57]{index=57}.
Additionally, we implement a layer of monitoring and alerting: The system (and community tools) should track the parity of BTC and sBTC. If any discrepancy arises, alarms should sound immediately. Also monitoring of signer performance (how quickly redemptions are processed, how often signers are offline) can feed into a reputation system or help governance decide on rotating out poor performers.
In conclusion, while no system is without risk, SatsFlux’s design tries to reduce trust assumptions to the minimum and align incentives such that every participant (users, signers, token holders) benefits more from honest behavior than cheating. The combination of threshold cryptography, open verification on chain, over-collateralized staking, and slashing for bad actions provides a multi-faceted defense. The most critical assumption that remains is the honest majority (or super-majority) of signers – this is common to many decentralized systems (similar to how Proof-of-Stake chains assume majority honest validators). By making membership in the signer set open and by widely distributing the SATS token (so no small group can control most of it), we strengthen that assumption.
We will continuously update the threat model as new insights and attack vectors become known (for instance, quantum computing in the far future could threaten ECDSA/Schnorr – mitigation would be moving to quantum-resistant cryptography when needed). Now, with the system’s design and security in mind, let’s turn to how developers and users can interact with SatsFlux via SDKs and APIs, making usage as seamless as possible.
Developer SDK & API Usage Documentation
To accelerate adoption, SatsFlux provides a robust SDK (Software Development Kit) and API for developers and power users. These tools abstract away much of the cross-chain complexity, allowing developers to integrate sBTC and the SatsFlux bridge into wallets, exchanges, DeFi platforms, and other applications with ease.
SDK Overview
The SatsFlux SDK will likely be delivered as a set of libraries in popular programming languages (starting with TypeScript/JavaScript for web, Python, and possibly Rust and Go for backend). The SDK handles:
Generating deposit addresses for users and tracking deposit status.
Initiating redemption (burn) transactions on behalf of the user and tracking Bitcoin transfer status.
Interfacing with the smart contracts on each chain (via web3 providers or RPC endpoints).
Verifying that the proofs/attestations from signers are valid (for client-side assurance, though the contracts do verification too).
Providing utility functions, e.g., converting amounts between BTC (satoshis) and sBTC (which might use 8 decimal places like BTC), encoding/decoding Bitcoin addresses, etc.
The SDK architecture might be similar to tBTC’s SDK:contentReference[oaicite:58]{index=58}:contentReference[oaicite:59]{index=59}, with a high-level SatsFlux class that exposes deposit and redemption flows, and underlying services for each chain interaction and Bitcoin interaction.
For example, a simplified JavaScript usage might look like:
// Initialize SDK for Ethereum mainnet + Bitcoin mainnet const satsflux = await SatsFlux.init({ ethereumProvider: window.ethereum, arbitrumProvider: arbitrumRpcUrl, solanaConnection: new SolanaConnection(...), bitcoinNetwork: "mainnet" });
// 1. Deposit flow:
const depositAddress = await satsflux.getDepositAddress({ targetChain: "ethereum", recipient: userEthAddress });
console.log("Send BTC to: ", depositAddress);
// User sends BTC externally (perhaps via their Bitcoin wallet or a QR code).
// SDK can poll or subscribe:
await satsflux.waitForConfirmation(depositAddress, amount);
// Once confirmed, the SDK will automatically or on call mint sBTC:
await satsflux.mintOnTargetChain("ethereum", depositAddress);
// 2. Redemption flow:
const burnTx = await satsflux.redeem({
fromChain: "ethereum",
amount: "0.5", // 0.5 sBTC
btcDestination: userBtcAddress
});
// Wait for BTC transfer completion
await satsflux.waitForBitcoinTransfer(burnTx);
console.log("Redeemed, BTC should be received shortly.");
The above illustrates conceptually how a developer might use the SDK. Under the hood, getDepositAddress would call an API endpoint or derive an address from extended public keys of signers (if available client-side). However, deriving deposit addresses may involve secret data (since signers know the xpub but a client may not). More likely the SDK calls a SatsFlux API service to get a deposit address (this is one aspect that might be centralized initially, as running a full Bitcoin address derivation and watch service on client is heavy; but the API can be just a thin service – trust is still reliant on signers picking up the TX, not on the API itself).
The waitForConfirmation function could internally poll a lightweight backend or directly use a Bitcoin node’s RPC (if the user runs one or connects to public ones) to detect the deposit TX. Similarly, mintOnTargetChain might actually just wait for the signers to mint (the user wouldn’t do that themselves usually – the signers will have submitted the attestation). But if for some reason it wasn’t automatically done, the SDK could fetch the attestation signature from a SatsFlux relay and call the contract itself. That is an advanced usage where the user acts as the relayer of the signature – typically not needed unless all SatsFlux signers are failing to post it for some reason.
For the redemption, redeem likely calls the Bridge contract’s burn function via web3 (so it will prompt the user’s wallet to send a transaction on Ethereum). The SDK can craft the transaction data and amount. Once that is done, waitForBitcoinTransfer will watch Bitcoin for an incoming transaction to the specified address of equal amount. It can also monitor the SatsFlux event logs to see that a redemption happened and possibly track the Bitcoin TXID if the signers published it on-chain. Or it can simply poll the user’s Bitcoin address for a change in balance.
Beyond these high-level flows, the SDK would offer:
Status Queries: e.g., getStatus(depositTxId) to get whether a deposit is confirmed, minted, etc., or getPendingRedeems() if any in progress. This helps UIs show progress bars.
Utility for Integrators: For exchanges that want to support sBTC deposit/withdraw, the SDK can be used server-side to automate converting BTC deposits to sBTC credits in user accounts and vice versa. They might run a SatsFlux signer or just use API calls to trigger mints once deposit confirmed.
Error Handling: The SDK should handle timeouts or errors by providing clear exceptions or callbacks (e.g., if a deposit doesn’t confirm within X time, notify; if signers didn’t mint within Y minutes, something’s wrong, etc.).
API Endpoints: In addition to client-side SDK, SatsFlux will run some public API services that provide:
Latest vault Bitcoin address(es) and balances (for monitoring and explorers).
An endpoint to request deposit address (for those not deriving locally).
Status of specific transactions (did TX X mint already? Did burn Y complete? etc.).
Historical data, e.g., list of all peg-ins and peg-outs (useful for block explorers or analytics).
These will likely be REST/JSON or GraphQL endpoints. Because the core system is decentralized, these APIs mainly present data that’s also available on-chain or via the blockchain’s RPC. They are convenience layers, not an essential trust component. If these APIs are down, the system still works (users could manually use the blockchains directly with the SDK connecting to fallback public RPC nodes).
Interface Examples:
Let’s demonstrate a couple of specific interface scenarios using SatsFlux:
Web Wallet Integration: Imagine a web wallet like MetaMask or a Bitcoin browser wallet adding SatsFlux. The wallet could allow a user to swap BTC ↦ sBTC within the app. Under the hood, it might use the SatsFlux SDK. The user would click “Deposit BTC for sBTC”, enter an amount. The wallet uses the SDK to get a deposit address, shows a QR code or instructs the user’s Bitcoin side (if it supports BTC) to send. Once done, the wallet periodically checks the SDK for when sBTC arrives in their Ethereum address and then displays it. Similarly, for withdrawal, the user would input a BTC address and amount, the wallet calls redeem via web3, then monitors until the BTC arrives and maybe even updates the Bitcoin side of the wallet with the new UTXO.
DeFi Platform Integration: A lending platform could accept sBTC as collateral. They will want to convert incoming BTC to sBTC for users who only have BTC. They could incorporate a “wrap BTC” function using SatsFlux. For example, on their UI if user selects BTC collateral, they provide a SatsFlux deposit address and once it turns to sBTC, deposit that into the lending protocol. For withdrawals, they’d do the reverse, calling SatsFlux to redeem and give user BTC. All can be done via backend scripts hooking into SatsFlux API or SDK calls. The platform would carefully handle timing and might even front liquidity for faster UX (credit sBTC immediately after seeing unconfirmed deposit, perhaps with small risk, but that’s up to them).
Command-line usage: For advanced users or developers, a CLI tool could be provided. e.g., a user could run: $ satsflux deposit --chain arbitrum --amount 0.1 --to 0xYourArbAddr and the tool returns a BTC address to send to and waits, then prints “0.1 sBTC minted on Arbitrum to 0xYourAddr”. Or $ satsflux redeem --chain solana --amount 0.05 --to bc1qYourBtcAddr to burn 0.05 sBTC on Solana and retrieve BTC.
The key is that all these are made possible by the underlying contracts and cross-chain messages we defined. The SDK just wraps them in a friendly way. We will open-source the SDK and provide documentation including code examples, as it's crucial for developer trust and network effects. Example documentation sections might show “How to add SatsFlux support to your dApp in 5 lines of code” with code similar to above, and detailed guides for different languages.
One more consideration: Running a Signer Node. Though not exactly SDK for using sBTC, we should mention developer documentation for node operators. We will provide a separate guide for setting up a signer node (likely in the repository and docs) – including installing the SatsFlux daemon, staking tokens, connecting to Bitcoin/Ethereum/Solana nodes, and monitoring the node. This ensures the supply side (validators) can join easily, which decentralizes the network further.
By providing easy-to-use tools and libraries, SatsFlux aims to become not just a protocol but a widely integrated standard for Bitcoin interoperability. We want any app that touches Bitcoin or wrapped Bitcoin to have an easy option to choose SatsFlux as their bridge, because it’s secure and simple to plug in. With developer support in mind, let’s shift to the economics of the system – the tokenomics that drive SatsFlux’s incentive alignment and long-term sustainability.
Tokenomics: SATS Token Supply, Utility, and Incentives
The SatsFlux protocol is powered by a native token (for the sake of this document, we refer to it as SATS). This token plays multiple roles: it provides collateral for signers, facilitates governance, incentivizes participants, and captures some of the value generated by the system. Here we outline the key parameters of the token and its economic design.
Supply and Distribution
Fixed Supply: The SATS token has a fixed maximum supply of 500 billion (500,000,000,000) tokens. This large supply number is chosen for granularity (so that small-value rewards can be easily represented, etc.). There is no inflation beyond this cap; in fact, the supply may decrease over time due to burns (see deflationary sinks below).
Initial Allocation: The genesis distribution of SATS is proposed as follows (all percentages relative to 500B):
Category
Allocation (SATS)
% of Total
Details
Protocol Treasury
150,000,000,000
30%
Held by the SatsFlux DAO or foundation for future development, partnerships, grants, liquidity provision. Vested over time (e.g., 10% unlock at launch, rest over 4 years).
Team and Advisors
50,000,000,000
10%
For core developers and early contributors. Subject to multi-year vesting cliffs to align long-term commitment. (e.g., 4-year vest, 1-year cliff, monthly thereafter).
Strategic Investors
50,000,000,000
10%
Any early backers or seed funding conversion. Also vested, and ideally relatively decentralized to avoid heavy concentration.
Staking Rewards Pool
150,000,000,000
30%
Reserved to pay out to signers and possibly liquidity providers as incentives over time. Emissions from this pool occur over, say, 10 years, decreasing each year.
User Incentives & Airdrops
50,000,000,000
10%
For initial airdrops to early users, liquidity mining for sBTC pools, referral programs etc. To bootstrap usage (with transparency and fairness in distribution).
Ecosystem Growth Fund
50,000,000,000
10%
Grants for developers building on SatsFlux, integrations, hackathons, market makers ensuring sBTC liquidity on exchanges, etc.
Total
500,000,000,000
100%
These numbers are illustrative; final allocations might adjust slightly, but the emphasis is on a large portion for community and network incentives (notice 30% for staking rewards, 10% for user incentives, 10% ecosystem = 50% directly back to participants) and ensuring the treasury is well-funded for development (30%). Team/investors collectively are a minority (20%), which is good for decentralization in governance down the line.
Initial Token Distribution Event: SatsFlux is not doing a public token sale (no ICO) as per disclaimers. The token will be emitted through participation and possibly an initial airdrop. For example, early testers or users bridging testnet BTC might get a small airdrop. Also, some tokens could be distributed to holders of other wrapped BTC tokens or to Bitcoin holders as a way to decentralize ownership (provided it doesn’t create regulatory issues). These strategies can help get SATS into the hands of those likely to use or support the network.
Token Utility
The SATS token has several critical uses within the SatsFlux ecosystem:
Staking for Signer Nodes: To become a signer (validator) in the SatsFlux network, one must stake SATS tokens as collateral. This stake is locked in the staking contract and can be slashed for misbehavior:contentReference[oaicite:60]{index=60}. The size of the stake may influence the chance of being selected if we have more signers than needed at any time. SatsFlux could use a random selection weighted by stake (like a lottery) to form signing groups for new vaults or rotating sets, similar to how Threshold Network or Axelar do:contentReference[oaicite:61]{index=61}:contentReference[oaicite:62]{index=62}. This means the token secures the network: the more value staked, the more secure the system (as it would require proportionally more capital to attack).
Governance Voting: SATS will be a governance token. Holders can vote on proposals for system parameters (e.g., changing the confirmation requirement, adjusting fees, onboarding a new chain), treasury spending, and electing committees. The governance could be direct or via a DAO where 1 token = 1 vote (possibly quadratic voting or other models to avoid plutocracy, but initially likely linear). To vote, users might need to lock tokens in a voting contract to prevent quick sell after voting (to encourage long-term thinking).
Fee Discounts and Payments: The protocol could allow fees (e.g., minting or redemption fees) to be paid in SATS tokens. Alternatively, if fees are collected in BTC or sBTC, some portion might be used to buy back and burn SATS (indirect value accrual). Also, participants staking SATS might get discounted fees. For example, if you stake a certain amount of SATS, your peg-in/out fees are reduced or zero. This encourages adoption of the token for heavy users of the bridge (think similar to how Binance BNB gives trading fee discounts).
Liquidity Mining / Yield: To encourage liquidity for sBTC, SATS tokens might be distributed as rewards for those who provide sBTC liquidity in DeFi (like in a Curve pool or Uniswap, or to those who lend sBTC in lending markets). This is part of the user incentives allocation. Essentially, token holders benefit from more usage, and they pay out tokens to bootstrap that usage in early stages.
Insurance Fund (possibly): SATS could act as a backstop in catastrophic cases. If there’s a shortfall in BTC (say due to a hack or slash event), a portion of staked SATS is slashed and could be sold for BTC or sBTC to cover users. In essence, SATS stake is the insurance. If that is not enough, in some designs, protocols have emergency mint of governance token to recapitalize (though with fixed supply, we’d avoid minting new tokens; better to have an explicit insurance pool). Regardless, the value of SATS is directly tied to the perceived security – a failure would tank token price, which is why stakers are motivated to avoid that.
Staking and Reward Mechanism
Signers stake SATS to secure the network. In return, they earn rewards in multiple forms:
Regular Epoch Rewards: From the Staking Rewards Pool (30% of supply). For example, an issuance schedule could release 15 billion SATS in the first year to stakers, then 12B second year, etc., decreasing. These rewards might be split among active signers proportional to their stake and performance (e.g., more rewards if you participated in more signings successfully). This is akin to block rewards in a PoS chain.
Fee Revenue Share: If users pay a fee in any form, part of it can go to signers. For instance, if there’s a 0.2% fee on peg-outs, that could be converted to SATS or to sBTC and distributed to signers as yield. We might distribute in kind (BTC fees perhaps paid to a fee address which occasionally is distributed to signers, possibly via buy-and-distribute of SATS).
New Chain Incentives: When a new chain is added, to incentivize signers to support it, the protocol can allocate bonus tokens to those who run the extra infrastructure for it in initial months.
Staking parameters: minimum stake requirement (for example, one must stake at least 1 billion SATS to run a node – making up a number – which ensures only serious players, but we also want decentralization so it shouldn’t be too high that only a few can afford; maybe a lower minimum and if too many, then selection rotates). There could be a lock-up period for stakes (like if you want to unstake, you must wait e.g. 21 days before tokens are released, to ensure accountability even after leaving).
Slashing amounts for misbehavior are deducted from stakes and potentially burned (some portion) and rest could go to an insurance fund or to the reporter as mentioned. The slashing and reward logic would be automated in the staking contract. For instance, a slashing event triggers immediate burn of slashed tokens (deflationary effect) and/or transfers some to a “treasury” that might auction them for BTC to reimburse losses.
Deflationary Mechanisms
Even though initial supply is 500B, over time the supply is likely to decrease due to:
Slashing Burns: Tokens slashed from misbehaving signers are burned (fully or partially). If the system runs well, this is rare, but if it happens it reduces supply. This aligns incentives as remaining holders effectively get a slightly larger share of network value per token.
Buyback-and-Burn: The protocol might allocate a portion of fee revenue to buy SATS on the open market and burn it. For example, 20% of all fees collected (in BTC or sBTC) could be swapped for SATS and burned quarterly. This mimics how some exchange tokens work (e.g., early Binance model) and can create upward pressure on the token value as usage increases, thereby directly linking platform usage to token scarcity.
Unused Incentives Burn: If some of the user incentive tokens aren’t needed (say adoption is strong and we don’t use all of the 50B set aside), the DAO could vote to burn the excess instead of letting it dilute value. Similarly for ecosystem fund if not utilized.
These sinks mean that after the initial distribution and incentive emission period, the supply could trend downward. At the very least, by year N when rewards are mostly emitted, active burns could result in significantly less than 500B in circulation, thus benefiting long-term token holders with increased relative ownership of the network.
Value Flow and Sustainability
Long term, the SATS token’s value is derived from:
The necessity of staking it to earn a share of BTC bridging fees. If SatsFlux sees high volume (imagine billions in BTC bridged), fees could be significant and thus staking yields attractive, driving demand for SATS to stake.
The governance power over a critical piece of cross-chain infrastructure – as Bitcoin defi grows, controlling SatsFlux parameters is valuable, making the token akin to a governance share in a vital protocol.
Speculative expectations of increasing usage: more bridging => more fees => more buyback/burn => token scarcity & demand increase.
We aim for the tokenomics to avoid the pitfalls of pure inflationary reward models (which can crash token price if not balanced with real usage). That’s why a fixed cap and deflationary aspects are built in. The rewards emission (30% pool) is front-loaded to bootstrap, but eventually the system should stand on organic fee revenue to sustain signers. At scale, signers might earn mainly in BTC from fees, and token incentives can taper off. By that point, SATS will be important for governance and maybe for continuing to get fee discounts etc., rather than just as a reward candy.
One potential role for SATS is in a staking tier system: e.g., signers with higher stake might handle larger vaults or more concurrent tasks. But we must be careful to not overly centralize power in a few large stakers. Perhaps a maximum effective stake cap can be introduced (like if you stake 5% of supply you get no further advantage beyond that, to encourage multiple signers not one giant). Axelar tackled stake weighting with threshold shares to equalize some differences:contentReference[oaicite:63]{index=63}:contentReference[oaicite:64]{index=64}. SatsFlux could do similar to maintain decentralization while still using token weight for Sybil resistance.
Additionally, an interesting token utility could be restaking in other services: For example, if the Ethereum community builds restaking solutions (like EigenLayer), SATS stakers might in future opt to secure related cross-chain services by restaking. This is speculative and not core to our initial scope, but the idea is the token could plug into a broader crypto economy (imagine SatsFlux signers also helping secure an oracle for BTC prices by using their stake, etc.), thereby accruing more value to SATS.
Overall, the tokenomics are designed to ensure:
Sufficient incentives to attract and retain a decentralized set of signers (via staking rewards and fees).
Active participation in governance by those with a stake in the system’s success (with distribution that favors users and long-term supporters).
A deflationary or value-accretive dynamic as usage grows (so early supporters who hold tokens see their value correspond with adoption, not diluted by endless emissions).
We will publish a detailed tokenomics paper/section to accompany this, with simulations of expected staking APY under various scenarios, and a schedule for reward emissions. Community feedback will be sought before finalizing these numbers, as the decentralization ethos includes token distribution itself.
Next, with the economic foundation laid out, we examine how decisions in the protocol are made and upgraded over time – i.e., the governance structure and upgradability of SatsFlux.
Governance and Protocol Upgradeability
Governance in SatsFlux is crucial because the protocol must adapt over time (e.g., adjusting parameters, adding support for new chains, rotating signers or keys) and eventually operate under community control. We outline our governance model and how upgrades to the system can be managed safely.
Decentralization Roadmap
At launch (2025), it’s expected that the SatsFlux core team will have a significant role in controlling settings, simply to react quickly in early stages. However, the goal is to rapidly transition to a decentralized governance by the SATS token holders (the SatsFlux DAO). The phases might look like:
Phase 0: Controlled Launch – The core team or a multi-sig will have admin control over the bridge contracts. This is mainly for emergency response and quick iteration. The multi-sig could include reputable community members to increase trust (e.g., 4 of 7 multi-sig with members from various projects).
Phase 1: Progressive Decentralization – Governance token (SATS) distribution has happened and a snapshot or on-chain voting system is introduced. At first, governance may be “signaling” – i.e., token holders vote on proposals and the core team’s multi-sig implements them. This ensures a smooth handover and that token holders learn the process with a safety net.
Phase 2: DAO Control – Formalize an on-chain governance contract (like a Timelock + Governor contract in Compound/OpenZeppelin model). Here, token holders can directly execute changes by voting, without needing a core team intermediary. Proposals could be made by those with a certain threshold of tokens (or delegates) and after a voting period, if passed, automatically queued in a timelock and then executed. All major parameters – like fee rates, threshold values, signers membership (like adding or removing signers, though signers are somewhat self-managed via stake, but maybe setting max signers, etc.), reward rates, etc., would be governable.
Phase 3: Self-Sustaining DAO – Over time, the governance might even elect subcommittees for specific tasks (like a Risk Committee to adjust collateral requirements, or a Tech Committee to propose upgrades). Also, community-elected signers might become a thing (though ideally signers are permissionless by stake, but governance could set criteria or veto malicious ones).
Throughout these, transparency will be maintained – for example, the multi-sig addresses and signers will be public, all governance votes recorded, etc.
Governance Scope
What can governance do? Key things that the SatsFlux governance (token holders) will have control over include:
Economic Parameters: Setting fees for minting and redemption (e.g., 0.05% fee adjustable if needed), minimum BTC confirmations required, how much signers get from fees, staking reward emission schedule adjustments (within preset bounds perhaps), etc. These allow tuning the system as conditions change.
System Parameters: Threshold signature parameters (if we ever wanted to change n or t for new vaults), number of signers, chain support (enable/disable a particular chain if it's insecure or update the contract addresses when new chains added). For instance, adding support for a new chain X would likely go through a proposal with code that deploys the contracts for X and adds it to an allowed chain list in the system.
Emergency Actions: Governance can trigger pause or circuit breaker if necessary (though hopefully emergencies are handled by a faster multisig, but if multisig is phased out, DAO might have an emergency sub-DAO that can act quicker). Possibly the DAO could also trigger key rotation if a compromise is suspected (e.g., vote to migrate funds to backup keys, effectively ousting signers and slashing if needed).
Upgrades to Contracts: SatsFlux contracts on Ethereum and others might be upgradeable via proxy pattern (with admin being the governance timelock). Thus, implementing new features or patching discovered issues can be done by proposing an upgraded implementation and having token holders approve it. Upgrades would undergo audits and perhaps a time delay so users can review and exit if they disagree.
Treasury Management: The DAO treasury (initially 30% of tokens plus any accumulated fees) will be managed by token holders. They can vote to spend funds on grants, marketing, further development (like hire teams to build side products), or token buybacks. This ensures the project can continue evolving beyond the founding team, with community funding for improvements.
Expanding Utility: The DAO might propose to use SatsFlux capabilities in new ways – for example, if at some point the DAO wants to launch an ETH-sBTC lending pool governed by them, or integrate with another protocol via mutual governance decisions (like whitelisting sBTC as collateral in MakerDAO or similar – requiring SatsFlux governance to maybe tweak something on their side).
It’s important to set some constraints too: Governance should likely not be able to directly take users’ funds (they cannot, since the contract rules ensure 1:1 backing; even an upgrade should not break that unless malicious). Possibly there is a distinction: some low-level settings could be adjustable by a specialized governance (like signers themselves might have some separate consensus for minor tuning – but better to keep all major decisions with the DAO).
Voting Mechanism: We’d likely adopt a known governance module (like OpenZeppelin’s Governor contract which supports token-based voting). Quorum and proposal thresholds are key parameters: e.g., require at least 4% of tokens to vote and majority yes for a proposal to pass, and maybe 0.5% to propose one. These can be adjusted by governance too. To encourage participation, we might implement or encourage delegation – holders can delegate votes to trusted community members if they don’t want to vote actively. Early on, delegation means a few knowledgeable people could accumulate enough voting power to steer, which is fine as long as it’s open and others can delegate away if unhappy.
We should also mention off-chain governance discussions: the DAO will have a forum or Snapshot for off-chain signaling. Changes like adding a new chain will be discussed on forums, perhaps a temperature check vote off-chain, then formalized on-chain. We aim for transparency and inclusivity in governance proposals (perhaps requiring they be posted for a minimum time for discussion before on-chain voting).
Protocol Upgradeability
SatsFlux’s design acknowledges that upgrades will be needed – whether to improve efficiency, add features, or fix vulnerabilities. Upgrading smart contracts, however, is delicate. Our approach:
Use proxy contracts (or modular contract design) so that logic can be changed without requiring all users to move to a new contract address (which could be chaotic for tokens). For example, the SBTC token might be behind a transparent proxy so that if a bug is found in the mint logic, it can be swapped out. The proxy’s admin initially is the multi-sig, later handed to the governance timelock.
Any upgrade will have a timelock delay (say 48 or 72 hours) after governance approves it before execution. This time window allows community or even external security researchers to examine the proposed new code (which will be posted, verified) and raise any alarms. If something fishy is found, governance could cancel the upgrade via another vote or emergency stop from multi-sig.
Some parts of the system, like the staking and slashing contract, might be deliberately non-upgradeable after launch to cement trust (i.e., code-is-law for slashing rules). Alternatively, they are upgradeable but with extra high quorum or a separate more stringent governance process to touch them. This prevents governance from easily colluding to remove their own stakes risk, for instance.
There will be multiple levels of control: e.g., each chain’s contracts might have their own admin (the DAO). Possibly a scenario: Ethereum’s SatsFlux Bridge could be upgraded by DAO, Solana’s program might have an upgrade authority that the DAO controls (maybe via a multisig that listens to DAO decisions, since cross-chain gov bridging is tricky – we might use a trusted agent or eventually on-chain general message passing to have DAO decisions affect Solana side, but initially likely a trusted link).
We also consider governance minimization: After certain maturity, we may lock some parameters so they can't be easily changed (like the 21M BTC supply is fixed, maybe at some point SatsFlux might say, "max fee is 1% by code, can't go above" to prevent governance abuse). But overall, since SatsFlux is providing a service, having governance able to fine-tune is beneficial as long as token holders remain aligned with network health (which is true if they want their tokens to appreciate).
Emergency Circuit Breaker: We mention in Security and here: There might be a special governance bypass for emergencies - e.g., a Security Council (small multi-sig of highly trusted individuals) who can pause the system quickly if a critical vulnerability or attack is detected. This is sometimes done to react faster than full DAO vote. This council’s powers would be only to pause and perhaps to initiate an emergency key rotation, not to steal funds. Their existence would be approved by governance and they’d be subject to re-election periodically. If emergency pause is hit, then within say 7 days a DAO vote must either resume or do an upgrade. This ensures the council can’t pause indefinitely without oversight.
Finally, Legal structure: It’s common that a foundation or legal entity might hold the initial treasury and manage early distribution, then dissolve or hand over to the DAO. SatsFlux likely will follow that approach: a Swiss foundation or similar might oversee the token distribution and development in early years until the DAO is capable. This ensures regulatory compliance in distribution (no profit dividend, token as utility/governance). Over time, that entity will step back as DAO takes over responsibilities like funding development teams (which could include hiring the former core team as contractors approved by DAO, etc.).
With governance and upgrade mechanisms clarified, we can be confident that SatsFlux can evolve and improve while keeping security and decentralization as priorities. The next section deals with day-to-day security operations: how we monitor and maintain the system, conduct audits, and ensure reliability (SRE) of this cross-chain infrastructure.
Security Operations (Auditing, Monitoring, and SRE)
Security is an ongoing process. This section describes the operational measures SatsFlux will employ to maintain robust security and reliability in production, beyond the protocol design itself.
Auditing and Testing
Professional Audits: All smart contracts (for each chain) and critical off-chain code (like signer client implementation) will undergo multiple independent security audits. We plan to engage well-known blockchain security firms for this purpose. For example, one audit by Trail of Bits or OpenZeppelin focusing on Ethereum contracts, another by e.g. Halborn or Quantstamp covering the overall architecture including threshold crypto usage, and perhaps a dedicated review by a cryptography expert on our FROST implementation. Audit reports will be made public for transparency. Any issues found will be fixed and possibly re-audited.
Formal Verification: Where feasible, we will formally verify certain components. The most critical piece is the Bridge contract’s signature verification logic – formal methods can ensure that it correctly validates signatures and that no unauthorized mint can happen. Tools like Certora or sif (by Runtime Verification) may be used to write specifications (e.g., “it’s impossible to mint unless proper sig present” etc.). Additionally, we might verify the arithmetic of threshold signature combination if done in-contract, to avoid subtle bugs.
Testnets and Bug Bounties: Before mainnet, SatsFlux will run an extensive testnet (or multiple). For instance, a Bitcoin testnet (or Signet) connected to Ethereum Goerli, etc., where we simulate deposit/redemption and let outside users test it. We’ll also run a incentivized testnet event – where we encourage people to try to break it, and offer bug bounties for vulnerabilities discovered. At launch, a bug bounty program (perhaps through Immunefi or our own) will be in place, with rewards scaling up to e.g. $1 million (in BTC or equivalent) for critical findings like a way to steal vault funds or mint unbacked sBTC. This invites white-hat hackers to help secure the system.
Continuous Integration and Unit Testing: All code will have thorough unit tests. For smart contracts, every function and scenario (normal and edge cases) will be tested using frameworks like Hardhat/Truffle or Anchor (for Solana). The threshold signing code will be tested with simulated network splits, corrupted messages, etc., to ensure it handles gracefully. We will integrate into CI such that any code changes run the full test suite and require reviews.
Monitoring and Alerting
Real-time Dashboard: The SatsFlux team (and eventually the DAO’s ops teams) will operate a monitoring dashboard displaying key metrics: total BTC in vault, total sBTC minted (per chain and aggregate), difference between them (should be near zero), number of signers online, signer response times, etc. This is akin to how one monitors a blockchain validator set. We might adapt existing monitoring tools (like Nagios, Prometheus + Grafana) for our specific metrics. For instance, an alert triggers if vault balance doesn’t match total sBTC, or if any redemption hasn’t completed in > X minutes, or if fewer than threshold signers online.
On-chain Monitoring: We will set up scripts or services to watch on-chain activity for anomalies. E.g., watch Ethereum mempool for any transaction that tries to call mint with an invalid signature – that could be an attack attempt or user error, either way interesting. Also monitor any large transfers of SATS token that might indicate a centralization risk (this is more governance related). Monitor signer addresses (if known) for unusual behavior. Some of this can be public: we might allow community to subscribe to certain alerts too.
Network Monitoring: The P2P network of signers will be monitored for health – ensure messages are flowing. We’ll have heartbeats (signers signing a heartbeat message every few minutes that gets logged on chain or at least recorded by monitors:contentReference[oaicite:65]{index=65}). If a signer misses heartbeats, they might be having issues; our SRE can investigate or alert the signer. The Heartbeat contract or similar could be part of tBTC v2 design; we can incorporate a similar idea (and even slash if heartbeats consistently missing, or reward for staying online).
Incident Response Plan: A playbook will be prepared for plausible incidents:
Major Exploit (e.g., an attacker mints unbacked sBTC or drains vault) – Immediately pause bridging (via emergency multi-sig), alert community, preserve evidence, work on patch if possible, possibly negotiate with hacker (if white-hat return or such). Also coordinate with exchanges to freeze movement of stolen sBTC if possible to prevent cashout (if applicable).
Signer Key Compromise (e.g., we detect unusual signing of unauthorized tx) – Pause system, remove compromised signers (if identified), possibly use backup key path to secure funds. Initiate new vault and move funds if possible, slash the bad actors. This scenario likely involves Bitcoin transactions to safe addresses fast if old key might be leaked – requiring quick coordination.
Contract Bug Discovered – If vulnerability found (like re-entrancy possibility in contract), pause usage of that function (maybe via pausable logic if added) or whole contract if severe. Then deploy upgrade fix through timelock (or if super urgent, use emergency upgrade path if that exists). Communicate to users to hold off certain actions until patched.
Major Blockchain Fork or 51% attack – Example: if Ethereum or Bitcoin had an unexpected deep reorg, signers might have acted on a deposit that vanished. Our playbook might be to halt bridging until things settle. If a deposit was reorged out after minting, we might freeze those minted sBTC or require redeposit by signers (this is complex, but hopefully rare given these chains security). At least, have guidelines on what to do if underlying chain finality is broken.
For each scenario, clear roles are assigned: e.g., who has keys to pause, who communicates on social media, who is analyzing the chain data, etc.
Operational Security and Redundancy
Signer Operations: We will encourage signers to follow best security practices: using dedicated machines (or cloud instances with proper firewall), ideally hardware secure modules for key share storage, up-to-date software. Possibly provide them with an hardened signer appliance or Docker image to run. Regular updates to signer software will be issued (governance might mandate upgrades if improved security is available).
Geographic Distribution: Signers should be geographically distributed to reduce correlated failures (like region-wide outages). Also, running on diverse ISPs/clouds. The initial set might be somewhat curated to ensure a global presence (with open admission later). This prevents, say, all signers being down due to one AWS region outage or one country’s firewall.
Redundant Infrastructure: The SatsFlux team will run some infrastructure like public RPC relays for signers as backup (in case their own node fails, they can query our nodes). Also, multiple Bitcoin nodes (with fallback to Electrum servers if needed). Similarly for Ethereum, have multiple provider endpoints (Infura, Alchemy as backups for signers or our monitoring tools). We want no single dependency for cross-chain data feed.
Circuit Breakers: We’ve mentioned a pause switch – the Bridge contracts can be made Pausable. Under the hood that likely means: pauseMint, pauseBurn flags that only an authorized entity (multisig or DAO) can set. When paused, any attempt to mint or burn is rejected. This would stop new deposits from being processed and new redemptions from being initiated, effectively freezing the system in place. People could still hold or transfer their sBTC, just not convert. This gives time to address issues. The threshold signers themselves might also incorporate a self-pause: e.g., if they detect an invariant break (like more sBTC than BTC), they could refuse to sign further operations automatically until human intervention. That prevents compounding a problem.
External Audits Post-Launch: We won’t stop at pre-launch audits. After major upgrades, we’ll do follow-up audits. Possibly engage firms to do annual reviews of the whole system, including operational security review (are signers following procedures?). Also run chaos tests – simulate failure of some signers, see if system still runs (yes if threshold still met), simulate network splits, etc., to ensure resilience.
Community Oversight: Encourage community to run their own monitoring nodes that verify sBTC supply vs BTC. The more eyes, the better. Possibly have a “watchdog program” where individuals or other protocols check SatsFlux state and get small rewards from the DAO for reporting issues (similar to bug bounty but more continuous checking incentives).
All these measures aim for a security-in-depth approach: prevent issues at design level, detect them if they arise, respond swiftly to contain, and have fallback plans to protect user funds at all costs. Running a cross-chain bridge is akin to running critical financial market infrastructure, so we treat it with corresponding seriousness.
It’s also worth highlighting reliability: aside from security, simple uptime and performance of the service are important. We desire the user experience to be smooth (no long downtime, predictable processing times). Therefore:
We will likely maintain an SLA internally, like 99% of transfers processed within X minutes, and track that. If we fall short, investigate why (maybe signers slow, or chain congested) and remedy (e.g., adjust fees to speed confirmations or add more signers to distribute load).
We’ll keep an open support channel (like a Discord/Telegram) where users can report issues; our support engineers (initially core devs doubling as such) will assist and feed info to technical team if something is wrong.
In summary, beyond the protocol design, SatsFlux will operate with stringent security operations akin to a modern DevOps/SRE culture combined with crypto-specific threat monitoring. This will ensure user funds remain safe and the service runs as reliably as possible.
With the deep technical details covered, we now present the development and deployment roadmap for SatsFlux, giving a timeline of milestones from Q3 2025 onward.
Roadmap
The development and rollout of SatsFlux is planned in phases, with key milestones outlined below. We start from Q3 2025 (present) and project roughly two years ahead. The focus is on delivering a secure mainnet and gradually decentralizing while expanding chain support and features.
:contentReference[oaicite:67]{index=67}
Figure: SatsFlux Roadmap Timeline – Major milestones from Q3 2025 through Q2 2027, including testnets, mainnet launches, chain integrations, and governance transitions.
Q3 2025 – Research & Prototype
Whitepaper Publication: Release of the SatsFlux whitepaper (this document) detailing the protocol’s design, to gather community feedback and interest.
Prototype Development: Build a working prototype of the threshold signing and basic BTC↦ETH bridging on testnets (e.g., using Bitcoin testnet and Ethereum Sepolia). Demonstrate deposit and redemption in a dev environment.
Community Building: Begin outreach to developers and potential signers. Launch community channels (Discord, Forum) and perhaps a small airdrop or incentivized testnet sign-up form to attract early supporters.
Q4 2025 – Testnet Launch
Public Testnet (Beta): Deploy SatsFlux on a public test environment: likely Bitcoin testnet (or Signet) and a testnet version of Ethereum and Arbitrum. Possibly use a “test sBTC” token for this. Allow users to try bridging small amounts of test-BTC.
Testing of Threshold Network: Run with a set of ~15 signers in testnet, possibly recruited community members. Test various threshold scenarios (simulate some signers offline, etc.).
Audit Round 1: Undergo first smart contract audit now that testnet code is frozen. Also audit the FROST implementation and signer client code.
UI/SDK Release (Beta): Provide a basic web interface and the first version of SDK for developers to integrate and give feedback.
Q1 2026 – Mainnet Beta (Ethereum-focused)
Mainnet Launch v1: Launch SatsFlux on Bitcoin mainnet and Ethereum mainnet with a guarded approach. Possibly a limited signers set (e.g., 15 reputable signers elected or selected), and a cap on BTC that can be deposited initially (like max 100 BTC TVL during beta to limit risk).
Security Audit Round 2: Have another audit done after making changes from testnet findings. Also initiate a bug bounty program as soon as mainnet is live.
Minting Only Phase: Consider starting with deposit→mint enabled, but redemptions require a manual review for the first few weeks, just to ensure everything’s working (or maybe start with 1-way to identify any issues then enable 2-way fully). However, ideally we launch fully 2-way but with small limits.
Monitoring & Hardening: Closely monitor mainnet usage. Collect metrics, tune performance. Possibly do a “chaos test” on mainnet (e.g., temporarily take one signer offline to see system continues fine).
Q2 2026 – Mainnet Expansion (L2s and Base)
Arbitrum and Base Integration: Extend support to Arbitrum One and Base networks if not included at initial mainnet. Deploy contracts there, allow bridging directly to those networks. At this point, user can choose Ethereum or either L2 when depositing BTC.
Increase Capacity: If initial caps were in place, raise them (assuming security is proven). For example, allow up to 1000 BTC total TVL. Also perhaps increase signer set to 20 or more and maybe trial a stake-weighted selection if moving toward permissionless signers.
Token Generation Event: Distribute SATS token as per tokenomics. Perhaps do an airdrop to early testnet users, and list the token on decentralized exchanges. Introduce staking on mainnet (but maybe signers already were effectively staking if they had to post bond in v1 – if not, now move to stake-based participation). Ensure the staking contract is live and signers migrate to it.
Begin Decentralizing Governance: Form the initial DAO. Possibly launch a governance portal (Snapshot for off-chain voting at first). The core team might still control upgrades now but will involve community in decisions via votes.
Liquidity Programs: Kick off liquidity mining for sBTC pools (e.g., on Curve, Uniswap, or a lending protocol). This will encourage a healthy ecosystem around sBTC by Q2 2026.
Solana Support Beta: Deploy SatsFlux on Solana mainnet-beta. This likely requires thorough testing due to different architecture. Possibly launch with a separate small group of signers that specialize in Solana or use same signers if they've set up the infra. Initially with a low cap (like 50 BTC) on Solana to ensure safety.
Rotating Signer Set: By this time, the signer network should open up beyond the initial set. Implement random selection for signing groups (if using multiple vaults or just to select who signs each deposit perhaps). In other words, move from a static federation to a dynamic validator set chosen from stakers:contentReference[oaicite:68]{index=68}. This increases decentralization significantly.
Full DAO Governance Live: Transition admin keys of smart contracts to a governance timelock controlled by token holders. Essentially, the DAO is now in charge. Possibly have a formal on-chain voting system deployed (like Compound Governor) on Ethereum that can manage cross-chain decisions as well (for Solana, might still need a trusted agent to enact upgrades, but it will follow DAO votes).
Audit Round 3 (Post-Integration): Another audit focusing on Solana program and the overall now-complex multi-chain interactions. Also a review of governance contracts.
Q4 2026 – Feature Maturity & Network Effects
Optimizations: Implement any needed optimizations discovered: e.g., maybe an SPV relay for Bitcoin is partially integrated to reduce trust in signers further (if feasible); or optimize gas usage of contracts (perhaps introduce batch processing of deposits to save costs if volume is high).
Additional Chains Exploration: By end of 2026, evaluate adding more chains if demand exists. Possibilities: other EVM chains (BNB Chain, Polygon), emerging L2s (Scroll, zkSync), or other ecosystems (maybe Cosmos via an IBC bridge module). Governance and community will weigh in on where sBTC is needed. Begin development for next chain integration if approved.
Cross-Chain Transfers UX: Improve the seamlessness of moving sBTC from one chain to another. Perhaps integrate with wallets to automate the burn on one chain and claim on another in one user flow. Possibly partner with bridging protocols to handle some messaging (though our own system can do it, maybe UI can be improved).
Growing Ecosystem: At this stage, aim to have sBTC widely used: integrated as collateral in DeFi (Aave, MakerDAO if possible, etc.), listed on major exchanges (maybe a wrapped version if needed to list or direct integration if exchange can handle it), and accessible via popular wallets. The team (through DAO funding) will continue business development and technical support to projects to integrate sBTC.
Q1–Q2 2027 – Refinement and Long-term Vision
DAO-driven Upgrades: Now the community might propose and implement upgrades: e.g., adjusting threshold parameters if research suggests (like moving from 8-of-12 to 11-of-15 as more signers join), or upgrading cryptography (if quantum threat emerged, planning for that). Perhaps implementing new features like Lightning Network integration (bringing Lightning channels into play for faster peg-ins?) if ever desired by community.
Sustainability focus: By mid-2027, the initial incentive pools would be half depleted. The DAO will look at fee revenue vs expense. Ideally, by now organic usage yields enough fees to cover signer incentives with minimal token emissions. If not, adjustments could be made: e.g., reduce reward rates, or increase fees slightly, or find other revenue (like offering premium services). The goal is a self-sustaining model by this time.
Continuous Security: Possibly engage in a simulated “chaos testnet” or drills to keep the system sharp. Eg: have a day where one pretends X signers compromised (on testnet) to practice recovery. Encourage academic review of SatsFlux (maybe by 2027 it's a subject in blockchain research conferences, which would be a good sign!).
This roadmap is subject to change based on real-world factors, but it provides a direction. The highest priorities are a secure mainnet release, then broadening utility and decentralization. We expect to iterate with community input – roadmaps are living documents, and the DAO can modify milestones or add new ones as we progress.
Now, we will close with the legal and regulatory considerations and disclaimers which SatsFlux adheres to, making clear the nature of the project and its token.
Legal Disclaimers
Important Notice: SatsFlux is a decentralized software protocol and is not intended to be an investment product or a security. The following disclaimers are provided to clarify the nature of the project and ensure compliance with relevant regulations and best practices:
No Investment Advice: This whitepaper is for informational purposes only. It does not constitute an offer to sell, a solicitation of an offer to buy, or a recommendation of any security, commodity, or other financial instrument. Participation in the SatsFlux network (whether by using the bridge or holding the SATS token) is entirely at the user’s discretion and risk.
No Token Sale / Fundraising: There will be no public sale of the SATS token (no ICO/IEO). The token distribution described is either via airdrops, network participation, or other decentralized allocation methods. SatsFlux is not selling tokens to raise funds; the development has been funded through other means. The token is intended for use within the network (governance, staking, etc.), not as a means of raising capital.
Utility Token: The SATS token’s primary purposes are to secure the network (through staking and slashing), to enable holder participation in governance, and to reward usage. It is not designed to provide any income, profits, or rights traditionally associated with securities. Any perceived increase in value is a secondary market effect and not guaranteed or promised by the SatsFlux team.
No Ownership of Protocol Assets: Holding SATS does not entitle anyone to ownership of the SatsFlux protocol’s assets or intellectual property, nor does it involve entitlement to fees or revenues (beyond what is explicitly coded as, e.g., staking rewards). The token does not represent equity or shares in any company, foundation, or entity, and holders have no rights to profits or losses of the project.
Decentralized Network, No Custodian: SatsFlux is non-custodial. Users maintain control of their Bitcoin and sBTC at all times except during the moment of conversion where the protocol (via signers) temporarily holds BTC. The signers do not individually control funds, and the protocol is governed by smart contracts and open-source code. There is no central company or intermediary holding users’ funds; thus, typical regulations for custodians or money transmitters are not directly applicable. Users must, however, acknowledge the technical risks in using a decentralized bridge.
KYC/AML: SatsFlux does not implement KYC (Know Your Customer) or AML (Anti-Money Laundering) procedures at the protocol level. The system is permissionless – any user with a supported wallet can use it without registration. That said, users are responsible for complying with their local laws. If an entity (like an exchange) integrates SatsFlux, that entity is responsible for any compliance on their side. The SatsFlux protocol itself provides no identities and has no ability to censor specific users (aside from general emergency pauses which affect everyone equally).
Regulatory Uncertainty: Cryptocurrency regulations vary by jurisdiction and are evolving. The SatsFlux team has designed the system to minimize regulatory exposure (for instance, no token sale, no promises of returns, decentralizing control as much as possible). However, there is no guarantee authorities in certain regions won’t view sBTC or SATS differently. Users should be aware of and comply with the laws in their jurisdiction. The SatsFlux project makes no representations that participation is legal in any specific jurisdiction and shall not be responsible for users' legal compliance.
Open Source and No Warranties: SatsFlux will be released as open-source software. It comes with no warranties of any kind. Although security is a top priority and audits will be done, the team cannot guarantee the absence of bugs or vulnerabilities. By using SatsFlux, users acknowledge they understand the risks of smart contract platforms (including possible bugs, hacks, unavailability of underlying networks, etc.). Any loss of funds due to such issues is not the liability of the SatsFlux developers, contributors, or any affiliated individuals.
Future Statements: Any forward-looking statements (like roadmap items or potential features) are projections and not guaranteed. Development is complex and subject to change. Delivery of any feature by a certain time is a goal, not a promise. The project’s direction will be governed by the DAO and real-world conditions.
No Partnership or Solicitation: Mention of other projects (e.g., Ethereum, Solana, etc.) does not imply any formal partnership or endorsement by those projects. Likewise, referencing security firms or protocols (like we mentioned tBTC, Stacks) is purely for context and does not mean there is an official relationship unless explicitly stated outside this document.
In plain terms, SatsFlux is an experimental, community-driven infrastructure. Use of the protocol or token is at your own risk. There is no central operator guaranteeing outcomes. By participating, you agree that you understand these principles and will not hold developers or contributors liable for any outcomes.
We encourage all users and participants to do their own research, exercise caution, and participate within the bounds of law and personal risk tolerance. SatsFlux aims to be a public good for the blockchain community, and we appreciate all those who engage with it responsibly and constructively.
Thank you for reading the SatsFlux Whitepaper. We look forward to building a bridge to connect Bitcoin with the broader world of decentralized finance in a secure and truly trust-minimized way, together with our community.