How is it possible to standardize bitcoin and wrap it to the ERC20 format, creating smart contracts for Bitcoin. This should make it easier to write smart contracts that integrate bitcoin transfers apparently, but for my understanding this makes no sense since the code bases are alien to each other. Can someone elaborate? this seems rather complex?


If you're referring to Wrapped BTC (WBTC), it has nothing to do with the Bitcoin Network. 1 WBTC is equal to 1 BTC purely through a custodial pegging system. To mint a WBTC ERC-20 token, you must lock-up a BTC.

This lets BTC be 'represented' on the Ethereum blockchain and can be used in different dApps, commonly financial ones.

If you're familiar with Wrapped ETH (WETH) it is the exact same concept except the process to wrap ETH is trust-less and done on the Ethereum blockchain (b/c ETH is native to the blockchain). The process to wrap BTC is not currently trust-less, you need to send your BTC to BitGo, a Bitcoin custodial exchange.

Then with the ERC-20 version of BTC, you can do with it whatever you can do with any ERC-20 in smart contracts.

This should make it easier to write smart contracts that integrate bitcoin transfers apparently,

With the ERC-20 version of BTC, you can call safeTransferFrom() like with any ERC-20 token. This'll transfer the WBTC to whichever Ethereum address chosen. Now this Ethereum address has 1 WBTC (in this example) but the Bitcoin Network doesn't somehow credit this Ethereum address with 1 BTC. As far as the Bitcoin Network knows, the BTC is still held by BitGo (the BTC exchange you lock-up BTC for WBTC).

How does this person who just received 1 WBTC get credit with 1 true BTC, and have their ownership of the BTC registered with the Bitcoin Network? They go to BitGo and 'cash-in' their WBTC. The rate will always be 1 WBTC:1 BTC, so BitGo will send their Bitcoin address of choice the 1 BTC.

Standardizing and wrapping any non-native coin as an ERC-20 on Ethereum doesn't have 'real' interoperability with the other blockchain. As you stated, this would be way more complex than the process I described above, and the process used currently (pegging).

For true interoperability, as you may be envisioning, check out Cosmos Network. They are trying to build an 'internet of blockchains' and just launched main-net. They standardize blockchains, not tokens/coins, to allow true interoperability (basically so the code bases are the same). I think you'd find the project interesting!

I hope this answered your question. Here is WBTC's official site where you can read more about the process they use: https://www.wbtc.network/

  • Awesome, glad to help! – savard Mar 24 '19 at 23:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.