Bitbind v2 will be published as part of the DLOX network

bitbind.io

Connecting Bitcoin transactions and their legacy to external identities and attributes. For people and things building stuff on top of the Bitcoin blockchain.

tags objects API documentation Examples Contact
bitbind.io tags

Tags and objects are pushed to bitbind.io by a public REST call, using a private API key. That API key denotes the namespace ("foo" of "foo:bar") for the tag.

At the moment, the tags are hosted by bitbind.io, but we're looking to move that to a distributed hash table or validated transaction hash in the future.

bitbind.io objects

Objects represent a trackable item. An object is created from a genesis transaction, the first output of that transaction being the object initial "forward address". The object then tracks that forward address. A transaction that uses it as an input will relocate the current forward address to the first output of the transfer transaction.

An object's address is the transaction ID of its genesis transaction.

bitbind.io objects and tags

A full history of forward addresses is kept as the "address history" of the object. If any of those addresses are used as the output of a transaction from a tagged address, they are implicitly tags for that object. Any tags present on the inputs to the genesis transaction are also considered tags for that object.

/tags/? GET

https://bitbind.io/tags/?

e.g. /tags/126bRSXunzNdZwuJJhYMP586PptKTfviJS

[
  "deckbound:genesis:testfirst"
]

Shallow query for tags at this address, always prefixed with the namespace associated with the API Key used to generate the tag.

/tagchain/? GET

This method is currently private

https://bitbind.io/tagschain/?

e.g. /tagchain/1LybCx7JizKguHTKjxM9e8mSPifVjyyrya

[
  "deckbound:hero:elemental"
  "deckbound:genesis:testfirst"
]

Recursive search for retained tags (i.e. is this address tagged by virtue of its parents) -- returns an array of tags in order of proximity (tags at the address will be first, then its parents, etc).

/createtag POST

This method requires a valid API Key

HTTP POST https://bitbind.io/createtag with:

{
  "apiKey" : "your API key",
  "addr" : "the address for which you would like the tag attributed",
  "tag" : "the tag string itself"
}

Creates a tag for the given Bitcoin address. That tag will always return prefixed with the namespace associated with your API key.

/object/? GET

https://bitbind.io/object/?

e.g. /object/27bf2bbae185ef31234d1988feb98ad12497757fdaa22abda44aac0007ac89a2

{
  "input_addrs": [
    "1LybCx7JizKguHTKjxM9e8mSPifVjyyrya"
  ],
  "tags": [
    "deckbound:hero:elemental"
  ],
  "addr_history": [],
  "tx": "27bf2bbae185ef31234d1988feb98ad12497757fdaa22abda44aac0007ac89a2",
  "fwd_addr": "1ZbycPj8fawa5pyHtjaE74EQRZundMEP5",
  "name": "test:card:e1"
}

Object information for this transaction, including a list of all tags for all input addresses to this transaction.

Note: at the present time, the tag list is first level tags at each input address and the fwd_addr and addr_history are not queried for tags. If you want deep tag chains for every address, call /tagchain/? for each address in "input_addrs" and the fwd_addr.

/createobject POST

This method requires a valid API Key

HTTP POST https://bitbind.io/createobject with:

{
  "apiKey" : "your API key",
  "tx" : "the genesis transaction for this object",
  "name" : "the name or type of the object (queries will return this prefixed with your namespace)",
  "fwd_addr" : "the current forward address of the object*"
}

Create an object based on the specified genesis transaction and forward address

* currently the /createobject method must specify a fwd_addr that is an output of the genesis transaction... support for fwd_addr chains at creation time will be added later.

Note: objects do not have to be created from tagged addresses... though if you do create an object with a genesis transaction that uses tagged addresses as its inputs, the tags of all of those input addresses will be returned when querying /object/.

Some methods (specifically creating tags and objects) require a valid API key. This system isn't automated yet, so please get in touch if you're interested in creating your own tags and objects (associated with a namespace unique to your key).

Test API Key

For testing purposes, you can use the test key below -- please note though that this will change from time to time, all tags and objects will be namespaced "test" and depending on usage we may periodically purge tags and objects generated with this key.

2e176ec4-5dba-40ae-9b61-ecf560f276f9

Deckbound is a set of digital collectible/trading card games built on top of the blockchain using bitbind.io. Every playable card is a bitbind.io object, and their attributes are created by virtue of the object's genesis transaction.

find out more at www.deckbound.com

email: help@bitbind.io

twitter: @bitbind & @garethjenkins