Keybase + Stellar is live for everyone!
May 14, 2019
One year ago, we announced that Keybase is supported by the Stellar Development Foundation. And we promised something fun with the cryptocurrency. After much testing, it’s live now for all Keybase users, and for anyone new who installs Keybase.
Let’s talk about what Keybase has built, and why we’re different from other cryptocurrency wallets.
Goodbye to big, ugly addresses
A normal cryptocurrency experience involves passing an address around. Here’s what a Bitcoin address looks like:
This is (1) confusing and (2) not secure against social engineering attacks. So Keybase hides them, while increasing security. The addresses still exist, of course, but they are signed into users’ signature chains, the same chains that announce device additions and removals.
In fact, here’s my sigchain link from Oct. 10 of last year, where my Keybase app generated, announced, and proved ownership of a Stellar address.
Again, this happens automatically inside Keybase’s wallet; all I did was click a button to create the account:
This “account” just has 2 keys in it, which I don’t need to see. The 2 keys look something like this:
||for receiving funds; this is public|
|stellar private key||SAV75USXIJOBMEQXPANUOQM6F5L
||access to this private key lets me send money|
Again, Keybase removes the need to see these details. Without trusting a server.
Synchronizing of your Stellar private keys
So...how do you get your private keys - meaning, access to your accounts - from one device to another?
Keybase already has an end-to-end secure protocol for communicating secrets, without exposing them to servers or man-in-the-middle attacks. This is the same protocol that unlocks your chats and Keybase encrypted files on a new install. Keybase now uses this protocol to sync your Stellar keys.
So when you provision a new Keybase device, it automatically has access to your Stellar funds.
Of course, you can still export your private key, for use in a non-Keybase Stellar app:
Also, your Stellar “address” (a.k.a. your public key) can also be exported, either in string form or as a QR code.
Automatic conversion of amounts
In a Keybase chat, you can send someone Lumens, priced in real currency. For example, $5.00 or 20.00€ worth of Lumens. This conversion + transaction goes through quickly, usually in under 5 seconds.
Many wallet apps support conversion like this, but Keybase will do it on-the-fly in chat, too. So you could type “Hey chris, +3GBP for the post-Brexit funding” and it would send me 3 british pounds of XLM.
Tight integration with chat
Cryptography aside, a wallet really, really, really must be paired with a chat.
You must be able to talk about what you’re sending. Or what you’re asking for.
In Keybase, there’s a “$” button in direct chats. Click it, and you can send or request, inside chat.
The confirm screen looks like this (mobile version):
And here’s how it appears, afterwards inside chat (desktop version):
Max actually did buy me my salad today at lunch, and this is how I paid him back. This is easier than Venmo because we chat in Keybase anyway.
In addition to the “$” button for sending, you can tip using inline texts, as mentioned above. For example my brother might write “hey bro +6usd for a coupla poundahs for comin out the house”. That works in chat.
In group chats, you can tip one or more people in a single message. For example: “hey, thanks for the advice. +1usd@chris and +1.50usd@max”.
This is the fastest and most social way we know to spread cryptocurrency.
Here you can see I have 3 accounts:
The top is my “default” account, which I’ve given the name “coyne purse,” a name which is encrypted just for me. This is the account I use to send and receive on the Stellar network, when transacting with other Keybase users. However, Keybase will synchronize multiple accounts across my devices. I have 2 other accounts; I send from them not into Keybase chat, but to regular old Stellar addresses.
Notice I have some Lumens “+ more” in my acme account. Stellar supports other kinds of tokens—not just Lumens—and I hold other tokens in that account.
Only when I make an account my “default” is it announced on my sigchain.
Fast, cheap, and no electrical power
We can’t say this enough.
As we wrote before, Stellar transactions are very inexpensive (miniscule fraction of a penny), very fast (5 seconds), and most important, they’re not using as much electricity as a medium-sized country.
Finally, more soon
This is only the beginning. Stellar does a lot more than just Lumens. For example, it functions as a decentralized exchange, and it supports atomic path payments. In a Stellar wallet, you can hold tokens issued by a bank—for example US Dollar tokens issued by an American bank or “anchor.” And let’s say your friend across the Pacific only likes tokens issued by their bank—redeemable for Philippines Pesos. In this scenario, magically, you can send your dollars to your friend without worrying about who’s doing the conversion or worrying about whether you trust their bank. And they don’t need to trust your bank. Stellar finds the optimal trade path through the network...made market efficient by the underlying decentralized exchange. All that is beyond the scope of this post, but Stellar really should replace the international money transfer networks.
Keep watching as we add more to our Stellar features. And if you’ve made it this far and would like a few XLM, hit me with a message in keybase chat :-)
Crypto for everyone!
— Chris Coyne
How do I buy (or sell) Lumens?
Coinbase Pro just started selling them.
Also most other cryptocurrency exchanges do too.
What about sending outside Keybase?
Of course! Keybase can send to any Stellar wallet. It can also receive from any Stellar wallet.
What about “federated” addresses?
Ah, so you know something about Stellar...yes, using other wallets you can send to [username]*keybase.io to reach a Keybase user.
For example, I’m chris*keybase.io. Also, since I’ve proven ownership of @malgorithms on Twitter, you could send money on the Stellar network to malgorithms@twitter*keybase.io. That will go to me.
Can I use my account(s) with another Stellar service, such as StellarX?
Sure. You have 2 options here: (1) just send funds from your Keybase account to your StellarX account for trading. Or (2) actually share the same private key between Keybase and the service.
Haven’t you lost your direction by integrating a cryptocurrency?
No! We love this partnership and believe it supports all our other work, too.
SDF is a non-profit, we like the Stellar technology, and we think it integrates very well in Keybase. Further, it doesn’t get in the way for people not interested in using it.
And if you’ve looked at the Keybase app recently, you’ve seen it has improved greatly in many other aspects.
Are you hiring?
Yes. Especially a Windows Engineer. Do you exist?
What about other cryptocurrency project XYZ?
For now, Keybase’s wallet will only support tokens that exist on the Stellar Network. Still, Keybase is a great place to pass those traditional addresses around securely. If, for example, you ever want to send me a Bitcoin or Zcash address, I’d want you to do it in Keybase chat. That would be encrypted and signed.
Where can I talk about this?
There’s an active, open team on Keybase called stellar.public. The team is owned by the Stellar Development Foundation. To join, just start up the Keybase app, and type stellar.public on the teams tab to request access.
How do I join Keybase?
On your phone or a computer, just visit https://keybase.io/download
This is a post on the Keybase blog.
- Keybase ♥'s Mastodon, and how to get your site on Keybase
- Keybase is not softer than TOFU
- Cryptographic coin flipping, now in Keybase
- Keybase exploding messages and forward secrecy
- Keybase is now supported by the Stellar Development Foundation
- New Teams Features
- Keybase launches encrypted git
- Introducing Keybase Teams
- Abrupt Termination of Coinbase Support
- Introducing Keybase Chat
- Keybase chooses Zcash
- Keybase Filesystem Documents
- Keybase's New Key Model
- Keybase raises $10.8M
- The Horror of a 'Secure Golden Key'