← Back to home

BitDSM

Next.js

Modeled after EigenPod in Eigenlayer, BitcoinPods enable bridgeless non-custodial native bitcoin delegation for financial applications on Ethereum.

Screenshots

BitDSM screenshot 1
BitDSM screenshot 2
BitDSM screenshot 3

Problem Statement

The BitcoinPod (BOD) is the core component of BitDSM, modeled after the EigenPod concept. A BOD is a secure vault on the Bitcoin network, created using a P2WSH bitcoin address. The main purpose of the BitcoinPod is to ensure that minted LSTs are supported 1:1 by BTC, whether already held in the BitcoinPod or set to be processed through it. To accomplish this, BOD:function as the withdrawal address for one or more PoS validators managed by the BOD Ownerverify pre-signed unbonding transactions from the source chaincontinuously monitor the Bitcoin blockchain to track the status of all BitcoinPodsFront end link: https://bod-frontend.vercel.app/app

Solution

We used Dynamic's wallet adapter to enable pre-signing of Bitcoin PSBT transaction using OKX wallet. Since Dynamic didn't support Signet, we hacked the project on Bitcoin Mainnet. The operator for BitcoinPod is an Eigenlayer AVS deployed on holesky testnet. The front end is built using next.js and the operator is written in Golang.The BOD script is deployed using Miniscript, allowing for asynchronous and remote signing via PSBT with the issuer. This ensures compatibility with any wallet that supports PSBT.BitcoinPod, aka BOD, is deployed as a non custodial P2WSH address with a Eigenlayer operator with an arbitrary threshold (3 of 3 in the hack). The bitcoin address is mapped to a BOD contract on Ethereum, which can be locked to another smart contract to enable arbitrary slashing via the operator. The client pre-signs a slashing transaction to enable the operator execute the bitcoin transaction non-interactively.We couldn't finish Eigenlayer Operator registration in time.

Hackathon

ETHGlobal Singapore

2024

Contributors