Bad first experience: lost funds performing peg-in

I apparently just lost 0.00033624 BTC (approx $10 USD at present price) because I missed/ignored the 0.01 (now 0.005) minimum peg-in requirement.

I acknowledge my responsibility and am willing to chalk this up as a learning experience if necessary.

Indeed, that is why I started with a small amount, because I wanted to make sure the process works before committing substantial funds.

Here are my observations:

  1. Setting minimum limit of 0.01 (or 0.005) feels completely arbitrary. Having dug around a bit now, I’ve yet to find any rationale for why these limits are set as they are, how these numbers were arrived at, etc. To paraphrase RSKIP219, “the limit was approx $300, now it is approx $150, which is half, so better for users”. There is zero discussion of: (a) why a limit is needed at all, and (b) why 0.005 and not 0.000001 or 0.00001 or 0.0001 or any other number.

  2. Whenever a potential new user/customer is trying out a payment network for the first time, it is customary to send a small test transaction to make sure it works. RSK appears to have a vastly different definition of “small test tx” than any other network I’ve ever tried. Yes, I had seen the .01 minimum mentioned, but that was one of 100 details I was processing, as RBTC peg-in is just step 1 of an overall process I am attempting – so when I went to actually do the peg-in, I just figured a reasonable “coffee” amount of $10 to start with, sort of reverting to old habits.

  3. hard-coded limits are always going to be problematic as real world value of BTC changes over tme. I understand there is a need to avoid dust/spam, but could the limits not be made dynamic eg based on average tx size in the last 2 weeks or something? Targetting a mimimum of $1 to $5 would be more reasonable for users in my opinion (admittedly, I do not know/understand all the backend constraints).

  4. Peg-in process feels un-necessarily complex. I remember using counterparty like 8 years ago. The process was: 1) install counterparty software, 2) generate counterparty address, 3) send BTC to address. done, easy peasy. With RSK, I suppose it is actually not that different, except one has to use an obscure function in MyCrypto to generate an address and then install a totally different utility in order to generate RBTC addr from a BTC private key. Does not feel cohesive or well thought out.

  5. The instructions for peg-in are hidden in developer documentation on the rsk website. why?

  6. I’ve read that when the minimum peg-in amount is not met, the contract is ignored and funds are lost. why?!! shouldn’t it at least send the funds back to sender, minus tx fee? This is arguably the most egregious thing.

honestly, I’m a bit shocked at how unpleasant this onboarding experience has been, given RSK launched in 2018. It seems as if RSK actively does NOT want users to peg-in and grow the network.

If i can get my BTC back, that would be great… after a few more halvings it could be a non-trivial amount of $.

While this post may sound overly critical, please realize that I could have just walked away, but am instead taking the time to sign-up and engage with RSK community. My goal is to highlight some rough edges in the hopes that they can be polished up.

I will add that the bad experience and frustration was compounded when akismet flagged my above post and did not allow it to be published. I finally signed up for slack and asked q’s there. I’d like to extend thx for those who took the time to help me out on slack, and get my post published.

But I must question the policy that caused the post to be flagged in the first place.

I don’t know for sure, but my guess would be so that it’s economical from a mining fee perspective.

Did you consider/try testing on testnet first?

Counterparty was an embedded consensus protocol built directly into the bitcoin blockchain. RSK is a bitcoin sidechain. Different types of systems, as a result, different ways of interacting with them. Unlike Counterparty, RSK has a native bridge (“the Powpeg” or “two-way peg”) that gives you the ability to use BTC (in)directly on the sidechain. You never experienced anything like this with Counterparty because Counterparty did not have this feature.

You are describing the experience of interacting with the Powpeg smart contract directly from your bitcoin wallet. This is an inherently raw, unforgiving way of using the Powpeg, similar to using bitcoin itself directly as opposed to using BIP-21 invoices or similar “easy UX” abstractions. For a more “polished” UX you could try

I have no unique insight here but my guess is because, as you discovered, the Powpeg is quite technical to interact with.

The method you used is not the only way to peg-in (as I pointed out before: There are also other ways to acquire RBTC, such as centralized exchanges, atomic swaps, p2p swaps, and federated swaps:

That said, I agree it could be easier overall to interact with the Powpeg and look forward to the 2wp app continuing to improve in privacy, security, and ease of use.

I’m just another RSK pleb like you, can’t really do anything to address your concerns directly but as a member of the community I want to thank you for taking the time to write up your experience and feedback. I hope the RSK dev community sees it and takes it into consideration when thinking about the roadmap for Powpeg and 2wp app improvements.


I am very sorry for the experience, but you can always get quick response if you use the below forms to reach out to RSK directly and report your bad experience. I understand you are not aware of the links, but it might be help you get quick response when having issues.

1 Like

@lost_funds_with_rsk thanks for sharing your experience. It sucks to lose funds this way, even 10 bucks. You probably paid around $1 on fees too. If you look at some of the recent peg-out transactions , you’ll see that they cost quite a bit more in fees (5-10X higher) – since they are 7/13 multisigs created by the bridge smart contract. Here’s one example with 0.0003BTC / $10 in fees.

Small peg-ins can lead to large divergence between BTC and RBTC. For example, a simple $25 roundtrip from BTC to RBTC and back could leave the user with $20 or even $15 after fees! Higher peg-in and peg-out amounts help keep the peg near 1:1.

Making the peg-in limit dynamic introduces more complexity. For instance, the community would have to decide whether they want the 2 way peg mechanism – a critical system – to rely on external data from bitcoin price oracles. Frequent updates to minimum amounts can themselves lead to other problems. Improvements in process mechanics will take time. But you make some good points on the UX side that the community should prioritize.

@light : very informative comments and suggestions! :clap::clap: