Blockstack: Exploring the CLI

Ok, it’s day two. Time to play around with the tools we installed.

We’ll be using the command line interface to lookup names, price names, find our deposit key, see which names we own, and get more information on names registered in Blockstack.

I don’t have my own name yet, but we can lookup other names registered with Blockstack, like so:

$ blockstack lookup fredwilson.id
{
    "profile": {
        "@type": "Person",
        "account": [
            {
                "@type": "Account",
                "identifier": "fredwilson",
                "proofType": "http",
                "service": "twitter"
            },
            {
                "@type": "Account",
                "identifier": "fred.wilson.963871",
                "proofType": "http",
                "service": "facebook"
            },
            {
                "@type": "Account",
                "identifier": "1Fbi3WDPEK6FxKppCXReCPFTgr9KhWhNB7",
                "role": "payment",
                "service": "bitcoin"
            }
        ],
        "address": {
            "@type": "PostalAddress",
            "addressLocality": "New York City"
        },
        "description": "I am a VC",
        "image": [
            {
                "@type": "ImageObject",
                "contentUrl": "https://s3.amazonaws.com/kd4/fredwilson1",
                "name": "avatar"
            },
            {
                "@type": "ImageObject",
                "contentUrl": "https://s3.amazonaws.com/dx3/fredwilson",
                "name": "cover"
            }
        ],
        "name": "Fred Wilson",
        "website": [
            {
                "@type": "WebSite",
                "url": "http://avc.com"
            }
        ]
    },
    "zonefile": "{\"avatar\": {\"url\": \"https://s3.amazonaws.com/kd4/fredwilson1\"}, \"bio\": \"I am a VC\", \"bitcoin\": {\"address\": \"1Fbi3WDPEK6FxKppCXReCPFTgr9KhWhNB7\"}, \"cover\": {\"url\": \"https://s3.amazonaws.com/dx3/fredwilson\"}, \"facebook\": {\"proof\": {\"url\": \"https://facebook.com/fred.wilson.963871/posts/10100401430876108\"}, \"username\": \"fred.wilson.963871\"}, \"graph\": {\"url\": \"https://s3.amazonaws.com/grph/fredwilson\"}, \"location\": {\"formatted\": \"New York City\"}, \"name\": {\"formatted\": \"Fred Wilson\"}, \"twitter\": {\"proof\": {\"url\": \"https://twitter.com/fredwilson/status/533040726146162689\"}, \"username\": \"fredwilson\"}, \"v\": \"0.2\", \"website\": \"http://avc.com\"}"
}

I want a name, so I can see how much it would cost by using the price command (at the time of this writing, registering rockhymas.id would cost me about $40 in btc):

$ blockstack price rockhymas.id
{                                                       
    "name_price": {                                     
        "btc": 0.00025,                                 
        "satoshis": 25000                               
    },                                                  
    "preorder_tx_fee": {                                
        "btc": 0.0028148,                               
        "satoshis": 281480                              
    },                                                  
    "register_tx_fee": {                                
        "btc": 0.0028148,                               
        "satoshis": 281480                              
    },                                                  
    "total_estimated_cost": {                           
        "btc": 0.0115092,                               
        "satoshis": 1150920                             
    },                                                  
    "total_tx_fees": 1125920,                           
    "update_tx_fee": {                                  
        "btc": 0.0056296,                               
        "satoshis": 562960                              
    },                                                  
    "warnings": [                                       
        "Insufficient funds; fees are rough estimates." 
    ]                                                   
}                                                       

If I wanted to buy it, I would need some btc in my account. To see which account the btc would be withdrawn from, I can use the deposit command:

$ blockstack deposit
{
    "address": "38FDVrfrexyoG3JNTCQkh8dpJbHT44YFuQ",
    "message": "Send bitcoins to the address specified."
}

The names command lets me see which names I currently have registered to this wallet (none, of course):

$ blockstack names
{
    "addresses": [
        {
            "address": "3MhaGGag9bKUM1yekMh24WGcteg3qAvgyo",
            "names_owned": []
        }
    ],
    "names_owned": []
}

And I can see more info about a given name’s registration using whois:

$ blockstack whois fredwilson.id
{
    "block_preordered_at": 374084,
    "block_renewed_at": 374084,
    "expire_block": 489247,
    "has_zonefile": true,
    "last_transaction_height": 374084,
    "last_transaction_id": "2986ec31ec957692d7f5bc58a3b02d2ac2d1a60039e9163365fc954ff51aeb5a",
    "owner_address": "1F2nHEDLRJ39XxAvSxwQhJsaVzvS5RHDRM",
    "owner_script": "76a91499e7f97f5d2c77b4f32b4ed9ae0f0385c45aa5c788ac",
    "zonefile_hash": "1a587366368aaf8477d5ddcea2557dcbcc67073e"
}

There is much more to the command line interface, right now we’re just dipping our toes in the water, figuring out the basics. Next up, let’s register a Blockstack name in the .id namespace.