I've been thinking for a long time that we need to start exploring the wonderful possibilities of Steem subchains. To that end, I've built POCKET, the first subtoken on Steem.
I first floated a seed of this idea a few weeks ago with my post on MISTs, and got a little positive feedback from the community. Since then, I've been testing various incarnations of the Pocket token system, and today I've finally released the real thing.
What is POCKET?
POCKET (the Proof Of Concept Electronic Token) is an experimental subtoken system which operates on the Steem blockchain; see my article on subchains for higher-level ideas. In the interest of starting out small to learn as much as I can as cheaply as possible, Pocket only does a couple things:
- Tracks ownership of a new token, the POCKET, which can be transferred between registered Steem accounts.
- Provides a very simple incentive system to encourage distributed storage of the Pocket database, by paying people to publicly confirm transfers of POCKET tokens.
- Allows users to interact with the Pocket protocol via existing interfaces such as Steemit.com, Busy.org, and Chainbb.com.
Quick simple overview of POCKET
How do I get POCKET tokens?
Most active Steem accounts are eligible to claim a pile of free POCKET tokens. Every Steem account that has submitted posts at least 5 times (top-level, comments, replies, post edits all count) to the Steem blockchain before POCKET started is eligible to get 1,000,001 POCKET tokens.
To claim your POCKET tokens, you need to resteem the POCKET Genesis Post. You don't need to vote for it, you don't need to pay anybody anything, you don't need to vote for my post here, you don't need to resteem my post here, you don't need to comment on anything, you only need to resteem the POCKET Genesis Post. Every eligible Steem account that resteems the Genesis Post will be credited 1,000,001 POCKET tokens.
14 days after the Genesis Post was first published, the Pocket Genesis Period will end and no new tokens will ever be created again. If you want to participate in Genesis, do it before 14 days have passed. After that, resteems of the Genesis Post will do nothing for you.
Once I have resteemed the Genesis Post, how do I know if I got the tokens?
You'll find these instructions over on the Genesis Post as well, but after you have resteemed it, reply to the Genesis Post with the single word confirm
. The word confirm
needs to be all lowercase.
Once you've resteemed and replied to the Genesis Post with confirm
, if your claim was successful (and you didn't type CONFIRM
or Confirm
or please confirm
instead of confirm
), you'll receive a message from a confirmation bot that you got your stake.
NOTE: You will be charged a fee of 1 POCKET for this confirmation. You don't have to reply confirm
if you don't want to pay the fee, but right now the only way to know for sure that your claim went through is to pay the fee.
Full disclosure: I am the owner of the @pocket-a account, which begins as the only confirmation bot. However, you can run your own confirmation bot and collect fees yourself! Read on to find out how.
How can I send someone POCKET tokens?
This is the easy part. Suppose you want to send 1000 POCKET tokens to @ned. Then all you have to do is write a Steem comment that starts with the text
pocketsend:1000@ned
It's that simple! Any comment is fine. It can be top-level or it can be a reply to someone's post.
NOTE: When you send POCKET tokens, you will receive an automated reply that the send was successful. This reply will tell you your balance and the balance of the receiving account, but it will also charge you a 1-token fee. This fee comes out of the total amount you sent; so in the above example @ned will only receive 999 tokens. You're being charged a fee for the confirmation message; if you want to send the tokens and not pay the fee, then immediately after you post the initial comment, delete it. The send will still happen, but the receiving account will get the whole amount. But, you won't get a confirmation message. It's your choice.
Can I include a memo with my send?
Sure! This is how:
pocketsend:1000@ned,everything that comes after the comma is a memo.
If someone ever wants to list POCKET on an external exchange, this could serve the same purpose as the STEEM transfer memo for deposit purposes.
What is POCKET for?
I'll answer two different questions. First, POCKET is part of a research project. I want to explore the possibilities that Steem offers us of having a blockchain that can encode arbitrary data without charging fees. I don't know if anybody has noticed, but that's pretty cool. It means you can build a blockchain-based app of any kind without having to build your own blockchain. Isn't that cool?
Second, POCKET is a fantastic tipping currency, provided that people decide it has some value and it ends up with a nonzero market price. Did you like @kingscrown's latest crypto analysis article? Then reply to it with
pocketsend:1001@kingscrown, super cool article bro!
Bam! Tipped! No need to expose your Steem active keys.
What's up with fees?
The fees are a very simple way that I devised to create an incentive mechanism for people to maintain copies of the Pocket database. The first account that posts a confirmation is the account that gets the fee. When POCKET first started, the only confirmer account was @pocket-a. If POCKET is successful, then other people will come along and run their own confirmer accounts to try to beat @pocket-a to the punch and earn the fees.
POCKET will only work, will only be trustworthy, if there are multiple people around the world maintaining and validating the database. If I'm the only one, that's a bad situation because you'll have to trust me not to manipulate balances in my favor.
So I can run my own confirmer account and collect fees?
Sure! I have published the Python code that @pocket-a is running here. It's not polished, but it does seem to work most of the time. Of course, I offer no guarantee that it faithfully implements the POCKET protocol or that it won't cause troubles. It's available with no guarantees or warrants of merchantability or fitness for any purpose and all that, naturally. Use at your own risk and don't run the code until you've audited it yourself! I'm not an experienced Python developer; as such, the code is likely not written to a standard that professional devs are used to.
What would be vastly better than running my code, of course, would be to write your own. In POCKET, code is not law; rather, protocol is law. I've published the POCKET protocol here, and you can use that to audit my Python code or create your own implementation.
Is there a block explorer?
Not yet. Please contact me if you're interested in helping to make one!
Is there a desktop wallet?
You can interact with Pocket via any interface to Steem. All the frontends like Steemit.com, Busy.org, and Chainbb.com. I believe someone has created a Steem desktop wallet, so that should work as well. The Steem cli_wallet
would do it. You can also do it programmatically with any of the Steem libraries like steem-python
.
So no, there's no wallet (yet) that's dedicated to POCKET, but the point is that you don't need one.
Is POCKET trading on any exchanges?
Not yet. If you're an exchange and you want to list POCKET, please contact me!
What gives POCKET tokens value?
As I'm writing this, we don't actually know yet if POCKET tokens have value or not. That will be up to the participants in the POCKET system to decide. Please keep in mind that I haven't given you anything but a protocol specification and a little hacky Python code attempting to implement the protocol. I'm not giving you tokens. When you resteem Genesis, you're saying "Hey world, I have tokens according to the POCKET protocol." If the world thinks that's a meaningful thing to say, then perhaps POCKET tokens will become valuable.
But this is a crucial thing to understand: I am not issuing tokens. The protocol is. If anything makes them valuable, it will be that fact.
What does the "K" stand for?
The K is silent.
That's so dumb.
It's a Nacronym, which stands for "Not an Acronym."
No, I mean I think POCKET is dumb. Why waste blockchain space with a useless token?
Steem has this wild untapped potential. You thought it was only good for social media? We can do anything here, we have the greatest blockchain sandbox ever created, and you're worried about a few extra bytes of storage? Have some imagination! If we don't try experiments like this, how will we ever get where we're going?
And in any case, if you don't like the idea of POCKET, don't claim your stake. That seems pretty simple to me.
TL;DR Links:
- Pocket Protocol Specification
- Pocket Genesis Post
- @biophil's Pocket Confirmer Github
- My meta-subchain post
- Dan's original post on subchains
And finally, I'm on the job market!
I'm a PhD Candidate in the Center for Controls, Dynamical Systems, and Computation in Electrical Engineering at UC Santa Barbara, and I expect to receive my PhD in the first half of 2018. My interests are in the intersection of technology and society: I am interested in how social systems interact with engineered systems, studying incentive design, distributed systems theory, security, and robust mechanisms for influencing social behavior. If you or anyone you know is interested in my combination of analytical prowess (I expect my PhD dissertation to result in 6 journal publications), real-world experience (I helped design and build several biodiesel production facilities before I went back to graduate school), and hacking skills (have you heard of POCKET?), please contact me!