Skip to main content

Python Client for interacting with a CasperLabs Node

Project description

CasperLabs Python Client API library and command line tool

CasperLabs Python client is a library that can be used to interact with a CasperLabs node via its gRPC API.


casperlabs-client is a Python 3.6+ module, it does not support Python 2.7. You can install it with

pip install casperlabs-client

or, if you have both Python 2 and Python 3 installed:

pip3 install casperlabs-client

Getting started

After installing casperlabs-client you can start interacting with CasperLabs devnet.

import casper_client
client = casper_client.CasperClient('', 40401)
blockInfo = next(client.showBlocks(1, full_view=False))
for bond in blockInfo.summary.header.state.bonds:
    print(f'{bond.validator_public_key.hex()}: {bond.stake}')

When executed the script should print a list of bonded validators' public keys and their stake:

89e744783c2d70902a5f2ef78e82e1f44102b5eb08ca6234241d95e50f615a6b: 5000000000
1f66ea6321a48a935f66e97d4f7e60ee2d7fc9ccc62dfbe310f33b4839fc62eb: 8000000000
569b41d574c46390212d698660b5326269ddb0a761d1294258897ac717b4958b: 4000000000
d286526663ca3766c80781543a148c635f2388bfe128981c3e4ac69cea88dc35: 3000000000

Deploying smart contracts

To deploy a smart contract to CasperLabs devnet you have to first:

  1. Create an account using CasperLabs Explorer and transfer (free) tokens to the account from the faucet.

    An account address is a public key in hex format such as:

  2. Compile a contract to the WASM format, see CasperLabs contract examples to see example contracts and instructions on how to compile them.

To deploy a compiled contract from your account address:

response = client.deploy(from_addr="f2cbd19d054bd2b2c06ea26714275271663a5e4503d5d059de159c3b60d81ab7",

Return values

Return values of the API functions defined in the CasperClient are generally deserialized gRPC response objects of the corresponding requests defined in the node's gRPC service, see casper.proto.

Response to requests like showBlocks or showDeploys is a stream of objects. Corresponding Python API functions return generator objects:

for block in client.showBlocks(depth=10):
    print (block.blockHash)

Error handling

Some requests' response objects (see their definitions in casper.proto ) have fields indicating success.

InternalError is the only exception that user code can expect to be thrown by the API.

Learn more about CasperLabs blockchain

See Usage of the CasperLabs system.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for casperlabs-client, version 0.3.9
Filename, size File type Python version Upload date Hashes
Filename, size casperlabs_client-0.3.9.tar.gz (76.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page