DCore PHP SDK library

2.5.0 2019-07-29 12:44 UTC


Set of APIs for accessing the DCore Blockchain.
If you are looking for other platforms you can find info below.




    "repositories": [
            "type": "vcs",
            "url": ""
    "require": {
        "decentfoundation/dcorephp-sdk": "dev-master"
composer require decentfoundation/dcorephp-sdk


You can find example project with SDK usage here.

You can find developer documentation for latest release here.

DCore API initialization

$dcoreApi = new \DCorePHP\DCoreApi(

Look at ./src/DCoreApi.php and ./src/Sdk/*Interface.php to see all available methods and their return values.

Get account

$account = $dcoreApi->getAccountApi()->get(new ChainObject('1.2.34'));
$account = $dcoreApi->getAccountApi()->getByName('Your test account name');

Create account

There are two ways to create account in DCore network: $dcoreApi->getAccountApi()->registerAccount() and $dcoreApi->getAccountApi()->createAccountWithBrainKey(). Recommended way to create account is using $dcoreApi->getAccountApi()->registerAccount() method, because it has an option to specify keys. You can use $dcoreApi->getAccountApi()->createAccountWithBrainKey(), but keys generated from $brainkey for $publicOwnerKeyWif, $publicActiveKeyWif and $publicMemoKeyWif will be the same, which is not recommended for security reasons.

    'Your test account name',
    new ChainObject('1.2.34'),

Create transfer

    new Credentials(new ChainObject('1.2.34'), '5Jd7zdvxXYNdUfnEXt5XokrE3zwJSs734yQ36a1YaqioRTGGLtn'),
    (new AssetAmount())->setAmount(1500000),
    'your secret message',

Create content

$content = new SubmitContent();
        'title' => 'Your content title',
        'description' => 'Your content description',
        'content_type_id' => '1.2.3'
    ->setPrice([(new RegionalPrice)->setPrice((new AssetAmount())->setAmount(1000))->setRegion(1)]);

$credentials = new Credentials(
    new ChainObject('1.2.34'),

    (new AssetAmount())->setAmount(1000)->setAssetId('1.3.0'),
    (new AssetAmount())->setAmount(1000)->setAssetId('1.3.0')

Search content

$contents = $dcoreApi->getContentApi()->findAll(
    'search term',


NftModels require @Type("type") annotation for correct functioning. GMP library is also necessary when working with integers.


class NftApple extends NftModel
     * @Type("integer")
    public $size;
     * @Type("string")
     * @Unique
    public $color;
     * @Type("boolean")
     * @Modifiable("both")
    public $eaten;

    public function __construct($size, $color, $eaten)
        $this->size = gmp_init($size);
        $this->color = $color;
        $this->eaten = $eaten;

Create NFT

$credentials = new Credentials(new ChainObject('1.2.27'), ECKeyPair::fromBase58('DCT6MA5TQQ6UbMyMaLPmPXE2Syh5G3ZVhv5SbFedqLPqdFChSeqTz'));
$dcoreApi->getNftApi()->create($credentials, 'APPLE', 100, false, 'an apple', NftApple::class, true);

More examples can be found in ./tests/Sdk/NftApiTest.php.

Development requirements & recommendations

PHPStorm configuration

Development & testing

git clone
cd dcorephp-sdk
docker-compose up -d
docker-compose exec php composer install --dev --prefer-dist --optimize-autoloader
docker-compose exec php ./vendor/bin/phpunit --bootstrap vendor/autoload.php tests

Official DCore SDKs for other platforms