I’m excited to announce Abra’s new Bitcoin-based multi-signature wallet for holding, sending and exchanging between digital assets, starting with ether and 52 fiat currencies as the first supported asset types. These updates, currently live for a limited number of users, will be rolled out to all users next week.

With Abra, all software contracts are based on bitcoin and payout via bitcoin. Unlike other solutions, Abra does not take custody of consumer funds or private keys in the management and storage of these digital assets. Our solution uses a “2 of 2” multi-signature model that requires both Abra and the consumer to sign a transaction when the consumer is holding anything but bitcoin.

Using a Bitcoin-based multi-signature wallet, a consumer can hold fiat currency or ether and Abra will ensure that the value of bitcoin the consumer is holding stays fixed to the amount of ether or fiat currency that the consumer wishes to hold – we call this a synthetic currency. Today, Abra acts as the counterparty to the consumer in all cases. Abra does offline hedging to mitigate our counterparty risk but this does not affect the functioning of the wallet nor the obligation of Abra as the counterparty in any way. In the future, Abra may open up the system so that others can act as counterparties to these contracts once a full smart contract implementation is in place.

We’ve been testing this model using a 100% server-based solution for a few months to verify the logic before expanding to a true multi-signature model in order to make sure that we had the software and financial engineering right. Now, after running our service for the past few months with tens of millions of dollars of funds, we’re ready for commercial deployment of our multi-signature solution. We’ve chosen ether and fiat currencies as the first digital assets that we will enable using this new model.

How does it work?

Let’s say you want to hold euros in your Abra app, and then eventually exchange those euros for ether. First, you need to get funds into Abra. You can do this by loading bitcoin directly into your Abra wallet, (or using Abra to buy bitcoin, where supported). Then, move your funds into a euro wallet, which creates a “2 of 2” multi-signature transaction, fixing the value of the bitcoin to the amount of euros you wish to hold. “2 of 2” means that both Abra and the consumer must agree to and sign the transaction. At this point, you have successfully created a multi-signature transaction fixing the value of your bitcoin as euros.

Using the new “Exchange” function in the App’s dashboard you can now convert the euro contract to an ether contract. To do this, you redeem the euro contract, which ensures that your app has the right amount of bitcoin relative to the amount of euros you are holding at this moment. Then, a new multi-signature transaction is created which fixes the value of the bitcoin to the amount of ether you wish to hold.

Abra currently pays any mining fees for exchanges but we offset this by maintaining a spread on the conversion rate. Eventually, we’ll figure out a better way to do this but this seems like a fair solution for now. To offset our counterparty risk in the 2 of 2 multi-signature model, as well as our risk of paying enormous mining fees, there may be variable minimum and maximum limits on any given contract at any given time.

If your ether has gone up in value and you want to lock in gains, you can simply exchange it back to bitcoin or a euro contract. In either case, you can then withdraw funds to your bank account (where supported) or withdraw it as bitcoin to another wallet. Whatever works for you.

Why are we doing this?

When we launched Abra as a platform for enabling money transfer and payments using bitcoin, users immediately started giving us feedback that Abra was now their go-to method to convert between fiat and bitcoin. This was an interesting side effect of how our model works. Our users love how easy we’ve made it to move between fiat and bitcoin without a central custodian — i.e. a bank — but they kept asking for more: more digital currencies, more wallets, more flexibility in exchanging between currencies, etc. This release puts us on the path to delivering on that ask.

What’s Next? Migrating from “2 of 2” to “2 of 3.”

For the next few months, we’ll be working with this 2 of 2 p2sh script based solution that requires both Abra and the consumer (via their Abra app) to sign a transaction. In a few months, we will migrate to a full 2 of 3 multi-signature smart contract solution that will enable a Contract Oracle to sign in lieu of either counterparty. This will provide significantly more protection to both the consumer as well as Abra in the case that either party disappears and will allow for much larger contracts due to the diminished counterparty risk inherent in the 2 of 2 model.

Our long-term vision is to have a completely decentralized system for storing, managing and exchanging between digital assets for investing, payments, and money transfer. While this new solution is not 100% decentralized, it certainly puts us further along the path to getting there.

Beyond 2 of 3 support, we eventually want to open the system up to other asset types and other counterparties to the contracts (besides Abra.) We’d love to hear about what you’d like to see in future enhancements and capabilities.

Give it a try and let us know what you think! Download the Abra app (for iOS and Android)