How do I get started developing on Counterparty?


#1

Viewing the Specs/Protocol

The most complete and up-to-date technical specification for Counterparty is here.

A developer-level specification is available at https://github.com/tokenly/counterparty-spec.

This will give you more information on the Counterparty protocol itself: how it works and what features it supports. If you need more in depth information on the inner workings of Counterparty or the protocol, your best bet is the counterparty-lib source code itself. It’s pretty readable, though.

Using the API

counterparty-lib (the reference implementation of the Counterparty protocol) has a fully functional and fully document JSON RPC API. If you’d like to integrate with or add support for Counterparty to your application, this is the best place to start. Please see the documentation on that at http://counterparty.io/docs/api/.

Beyond counterparty’s API, counterblock has its own API which provides extra functionality (such as market trading data, order book status, and more). Most people won’t need this functionality, but some will. counterblock API documentation can be found here: http://counterparty.io/docs/counterblock_api/.

Code Examples

The API is recommended over the CLI for production use.

Block Explorers

Popular block explorers for Counterparty mainnet are xchain.io and Coindaddy.io

Only CoinDaddy has a Counterparty testnet explorer.

Setting up your own Counterparty system for dev/testing

To get started you need to install counterparty-lib, counterparty-cli (which contains server and client) and bootstrap the database (or otherwise let it catch up which may take a while).

NOTE: Up to counterparty-lib 9.55.4, pay attention to the requirement to install a patched Bitcoin Core! After counterparty-lib 9.55.4, it is expected that the stock version of Core 0.15.0+ can be used in combination with Counterparty indexd-server.

If, on the other hand, you want to also run counterblock and/or run your own Counterwallet server, please check out the Counterblock Federated Node document, and run through those instructions (choosing the proper role for your purposes when asked).

NOTE: By default the setup scripts will not automatically install a bootstrapped counterparty database. You can bootstrap files for the counterparty database by downloading it from here or running counterparty-server bootstrap (for testnet users --testnet bootstrap may be required) which downloads and extracts the DB to the default location:

These files must be placed in appropriate directory (see counterparty-server.conf). They are updated nightly. Database files need to have proper ownership, especially on Federated Node.

If you use the default directories, then bootstrap command to counterparty-server will download and decompress the file to the right place. Otherwise you can make sure counterparty-server is stopped, move the file to the right location and then start counterparty-server.

The first time and after some major updates the Counterparty database must be reparsed so sometimes it make take a while (10+ mins) for counterparty-server to actually connect to Bitcoin Core. You can use verbose logging (-v) or watch disk activity to confirm this reparse/integrity check is going on.

Using public system for dev/testing

Public dev/test environment is provided by CoinDaddy.io:

Staying up to date with Counterparty changes and updates

  • The best way to stay up to date is to create an account on Github or Counterparty Slack and subscribe to notifications for the appropriate update repos or channels.

  • Sing up for our developer newsletter (at the very bottom of our home page http://counterparty.io)


How to pay asset (token) dividend using the Counterparty API
What options should I set for launching counterparty-lib?
Download and creation of Counterparty DB is too slow!
I'm having issues with Counterwallet. Are there alternative Counterparty (XCP) wallets?
What options should I set for launching counterparty-lib?
How to cancel pending trades?
Keep getting this bug when trying to deposit btc to multisig address