Thursday, June 27, 2013

Using to Help Grow Bitcoin Adoption

This is the first in a series of posts designed to help Bitcoin users get started with LocalBitcoins accounts.


One of the biggest problems standing in the way of increased Bitcoin adoption is the difficulty of buying them. It's a constant complaint you hear anywhere new (or aspiring) Bitcoin users gather.

Companies like BitInstant, Coinbase, etc. are working to make this easier all the time, but that's never going to be a complete solution because they can only add capacity so quickly and sometimes the process of adding new capacity can cause their website to be down for a couple weeks. In addition, there is always going to be a huge group of people who are not as savvy as the earlier adopters who aren't going to feel comfortable using BitInstant themselves no matter how much they improve their process.

For those reasons, it's enormously helpful if existing Bitcoin maintain active ads on LocalBitcoins so that when new users want to buy their first Bitcoins they have an easy way to find someone willing to help them through the process.

I've been selling on LocalBitcoins for several months, and what I've learned is there is an enormous market out there of people who want Bitcoins but just won't feel comfortable without some personalized hand holding. Those people are willing and happy to pay a markup that allows you to take the cash they give you, go through BitInstant or Coinbase yourself, and replenish the Bitcoins you sold them at a small profit. It's entirely possible for a person who is trying to accumulate Bitcoins in the long term to also sell and replenish them as a way of helping to bring in new users.

One thing you should know about local sales like this is that it's not a viable business. You won't lose money, but as an individual you'll never move a sufficient volume to earn more than a pittance in profit. Think of it as a hobby and as a vehicle for new user support and promotion. Meet new people, talk to them about Bitcoin, teach them how to buy them directly through the same services you use, and invite them to your local Bitcoin groups. I've almost never sold bitcoins to the same person twice on LocalBitcoins but I'm still quite busy over there because of the sheer number of new users who are learning about Bitcoin every day and want it. They hear about LocalBitcoins via news articles or web searches and we need to have people there ready to help them.

Here are some tips I can share based on my experiences of what works on LocalBitcoins. The information will necessarily be US-centric because I don't know what services are available in other countries and how they work:

First, if you haven't done it already set up accounts on Coinbase, BitInstant, CampBX, and Dwolla. Complete the AML verification where applicable, and make small purchases on Coinbase and CampBX to start their respective 30 day probation periods.

While you're waiting 30 days to be fully capable of replenishing the bitcoins you sell, open a separate bank account, ideally one with business hours that make it convenient to deposit cash on the evenings and weekends. Link this bank account to Coinbase, Dwolla, and BitInstant and store an initial balance of 1.0-2.0 times the maximum value of a cash BTC purchase you are willing to facilitate. What you're going to do is hold that cash as a buffer in your bank account, then when somebody buys Bitcoins from you you'll start a Coinbase order for the same amount, and then deposit the cash you get from the sale into the bank account. This protects you from exchange rate risk as much as possible. You don't want to sell a Bitcoin for cash today, wait around a couple days and then decide to replenish when the price is now significantly higher. On the other hand you don't want to have more fiat sitting around than you need to be able to float the 3-5 business days Coinbase is going to take to release your new Bitcoins.

Once you're ready to go it's time to set up an account on LocalBitcoins and start listing your services. Important things to think about about here are the text of your advertisement, and the pricing formula. When it comes to the text of the ad, Make sure to include contact hours, location details, and specific instructions. Be as clear as possible about your expectations in terms of time to complete a transaction, and where you are willing to meet.
I've also learned that developing a robust pricing formula takes a bit of work as well. For example, one might naively expect the following to yield good results:


That formula will produce a 6% commission above Mt Gox latest, but if you use it long enough you'll discover two problem:
  1. Mt Gox is sometimes down, so your formula won't work correctly.
  2. There are people out there who will try to high frequency arbitrage on your formula. The way this works is they watch for a sudden drop in the Mt Gox price and then enter orders on LocalBitcoins on the ads whose exchange rates immediately drop as well. If the price quickly recovers they'll complete the sale and immediately sell those bitcoins on Mt Gox, putting you underwater on the trade after consuming your time to go and meet them to complete the sale.
Problem 1) can be solved by looking at more than one exchange.


Now your formula takes the higher of Mt Gox or CampBX. This logic could be further chained to include more exchanges, but for simplicity we'll leave it there.

Problem 2) can be solved by including the 24 hour moving average as a factor as well:

max(max(mtgoxUSD,cbxUSD), USD_24h)*1.06

Now the formula responds immediately to sudden increases in the exchange rate, but gradually to drops in the exchange rate. This is fine because you're here to help new users buy their first Bitcoins, not service high frequency traders.

Another problem will come up during times when the price is increasing very rapidly, such as in March and April of this year. Even with a relatively generous commission, it's possible for you to end up underwater on the trade during the time it takes for you to coordinate a meeting and make the exchange. One way to solve this is to include a term that accounts for volatility:


That statement will project the current spot price to value that is 50% further away from the 24 hour moving average than it already is. Adjusted to include multiple exchange it looks like this:


and finally it can be added to the previous equation for a complete formula:

max(max(max(mtgoxUSD,cbxUSD), USD_24h),USD_24h+(1.5*(max(cbxUSD,mtgoxUSD)-USD_24h)))*1.06

I've been using equations in this form for a while now and they work very well in practice.

Another thing to consider is communication. Meeting up in person requires some finesse and coordination, so it's helpful to give the person a way to contact you in real time, like a phone number or an email address. I initially included this information in the ad itself, and found it to be a bad idea because I got spammed by people who wanted to negotiate different terms than what I included in the ad and got aggressively hostile when I declined. Once someone has initiated a contact you can respond to them with a number they can send text messages. Using Google Voice for this is a good idea. It goes without saying that meetings should be in busy public places and not dark alleys or your own home for everyone's safety.

Similar principles apply if you also want to sell online as well as in person. For example, if you offer a Dwolla ad then you'll be able to take up some of the slack during times when services like BitInstant are overloaded and you can help people other people get Bitcoins immediately who are still in CampBX's 30 day probation period. Keep 1.0-2.0 times the maximum value of the online purchase you are willing to facilitate as a balance in your CampBX account, and every time you make a sale on LocalBitcoins execute a Spend-X order for the same amount at the same time. Periodically you'll need to move received dollars from your Dwolla account to CampBX and move the Bitcoins you bought back to your LocalBitcoins wallet.

Note that experience has shown that it's dangerous to sell Bitcoins online via any payment method, and you run the risk of having accounts closed if someone sends you a fraudulent payment. It's probably not something you should start off doing, and if possible you should only allow people you know and trust to buy you from this way. You can do that by keeping your online ad disabled most of the time and only enabling it long enough for your friend to enter the order. (hopefully future revisions to the site will make this easier) In any case never leave more money sitting as a balance in any service (including your bank account) than what you could afford to lose in a worst case scenario.

I want to encourage everybody to set up and maintain ads in their local area to help grow Bitcoin adoption. We'll get new users a lot faster if there's a place they can go to find people willing to help them out in person for their first BTC purchase. You can use the trade as an opportunity to share your own knowledge, make new personal and business connections, and recruit another person to help do the same thing for the next wave of users. That's how we sustain an exponential adoption curve needed to get Bitcoins into the hands of the other seven billion people in the world.

About the Author:

Justus Ranvier is a Bitcoin activist and freelance author who has had some modest success using LocalBitcoins and wants to help others achieve the same thing. He can be contacted via his Google Plus profile.

Friday, June 21, 2013

Bitcoin Exchange Berlin - Local Exchanging Event

Want to trade local, but in more massive style? Satoshi square made that already in New York, US. Now Bitcoin Exchange Berlin is doing the same in Berlin. will be sponsoring the event, promoting local bitcoin exchanging. In the future we might also otherwise support this kind of trading events with website features and advertisements.

The event will be held on 29th June, Saturday in Platoon Kunsthalle, Berlin.

Monday, June 10, 2013 bank account frozen - how to deal with SEPA transfers

On Tuesday 4.6.2013 the bank account used for trading bitcoins using SEPA (Single Euro Payments Area) transfers was frozen. The account was unfrozen three days later.

A cold day in a bank in Finland

  • We received a large bitcoin buy request from Switzerland on Monday 3..62013 (a day before). A user wanted to buy bitcoins with Euros using a SEPA bank transfer.
  • The same user had traded with us before with smaller sums of euros
  • Thus, we believed the trade request was legitimate
On Tuesday 4.6.2013 10:00 AM we received a phone call from our bank that the Swiss bank of the trading party would like to chargeback the SEPA bank transfer. As we had already transferred  bitcoins to the trading party, naturally we declined the request.

The trading party had deleted the user account immediately after receiving bitcoins.We could not contact the party any longer.

Later on Tuesday 4.6.2013 13:00 AM we receive another phone call from our bank. The Swiss bank had remade the request to chargeback the SEPA transfer, with an additional request to freeze our bank account. Our bank complied with its international contracts and froze our account until the situation was resolved.

To resolve the situation, we send our bank the receipt of the transaction, as the proof of legitimacy. All trades made on automatically generate an electronic receipt. The receipt is signed using bitcoin addresses, using strong cryptography. You can find the receipts on your account by going to your user profile, clicking Dashboard, clicking Closed escrows, clicking Reference id and  scrolling down the page.

By the laws of Finland, the originating bank of a wire transfer (the Swiss bank in our case) is responsible for clearing the money and making sure the transfer is legit. We had all the reasons to believe that our trading party is not involved any criminal activity, as we had traded with the party before without any complications. Thus, after showing the receipts, on Friday 7.6.2013, three days later, our bank unfroze the account.

The banks did not disclose what happened between them. Here are our theories
  • The bank account of our trading partner was stolen and the trading partner was clearing the stolen money by exchanging it to bitcoins. The trades that happened before the freeze did not trigger statistical threshold points which will alert the bank staff for manually intervention. 
  • The trading partner was a scammer who was relying on the fact that the Swiss bank would automatically chargeback the SEPA transfer in the case a claim was made. The prior bitcoin purchases had been done to build reputation on reputation system to make the larger trades seem more safe. We are not aware what are the legislation and contract obligations of Swiss banks regarding SEPA transfers. If the Swiss banks refund the SEPA transfers without due diligence this would mean the scammer could keep both bitcoins and euros.
  • This was an attempt from a hostile party, like a government or a competitor, trying to stab us and hinder our operations.
The operations were not in risk in any point of the events. uses a separate account for trading operations. These kind of events do not effect daily operations which are funded from non-trading accounts. In fact, we keep minimum balances on all of our accounts to minimize the impact of asset freezes due to political and criminal risks in the virtual currency industry.

We do not know how the losses between banks are dealt in these kind of situations. However, if the events like this are likely to repeat, one might get the status of persona non-grata in a bank. operates in Helsinki, Finland. We pay taxes to Finland, we follow the laws of Finland and European Union. However, the virtual currencies in online networks are a contemporary phenomenon. Resolution processes are not everyday for all involved parties yet. Thus, we recommend our traders to take the following safety measures

Bitcoin will prevail.

Thursday, June 6, 2013

Argentina goverment fixing the exchange rates - the solution

We have received numerous requests to implement so called "blue dollar exchange rate" for Argentine Peso. The official exchange rate is different from the real exchange rate used in the markets.

We don't know much about the real situation in Argentina, but it was quite easy to find the unofficial "Blue dollar market rate" API for the Argintine Peso. We made a special symbol for it called "XAR", and you can use it to convert from USD values with the equation parameter USD_in_XAR, like this:

  • Buy: min(mtgoxUSD_close, bitstampUSD_close)*USD_in_XAR*0.99
  • Sell: max(mtgoxUSD_close, bitstampUSD_close)*USD_in_XAR*1.01
According to our data sources, official rate for Argentine Peso is 5.29 ARS/USD, while according to our other data sources the blue market rate is 8.62 ARS/USD at the time of writing this blog post. Of course Argentinese should verify the rates themselves, if the data provided by us is reliable.

We also support other special currencies, like:
We are planning to target southern America more in the future, with features and translations. Stay tuned.

Tuesday, June 4, 2013 logo updated

After an exciting design competition on, new logo has been revealed. Please visit to see it.

Related to the logo update, we have made some changes on the site theme and layout
  • The site theme is now lighter and should give an image of trust and security
  • Mobile user experience is now better and you should find it easier to browse the site on your  mobile phone
  • On the front page you'll also find some big media names where has been featured 
If you wish to give us any feedback on the new design please use our feedback form.