Credmark API
The Credmark Framework provides access to remote models and access to on-chain data via Credmark API.
Interactive HTTP requests
If you go to the Credmark API interactive docs you can use the popup in the top right of the window to choose between the different model groups:
For each group, you will get the docs for all the models within the group and you are able to run them interactively. Note that not all models are fully documented yet.
API client for consumers
For consumers of the API there exists a separate Credmark Client that includes a command-line tool and a SDK. The focus of this tool is for developing client-side apps and it is not needed for writing models.
Install
$ pip install credmark-client
Configuration
An API key can be set in the environment variable CREDMARK_API_KEY
.
For example:
export CREDMARK_API_KEY=cmk-api-key-v1.YXVkOmZwaS5JcmVkbWFyay5jb20Kc2NvcGU6YWNjZXNzCm5mdDoxCmV4cDoxNjM2OTQ1ODI5MTY2.0xFCAd0B19bB29D4674531d6f115237E16AfCE377c.0x42971132bd11b2d8c4ca47e831e4e8f46d2b4eca1e1b6a6e5356293e3f8a7de759d8fb3ab4d2f51455942f796ac79bf7240d54bf2df3c4453e4d9432aaee519abc
CLI Usage
This package includes a command-line tool credmark
.
credmark --help
usage: credmark [-h] [--log_level LOG_LEVEL] [--api_url API_URL]
{version,models,deployed-models,describe,describe-models,man,run,run-model} ...
Credmark developer tool
optional arguments:
-h, --help show this help message and exit
--log_level LOG_LEVEL
Log level: DEBUG, INFO, WARNING, ERROR, CRITICAL
--api_url API_URL Credmark API url. Defaults to the standard API gateway. You do not normally
need to set this.
Commands:
Supported commands
{version,models,deployed-models,describe,describe-models,man,run,run-model}
additional help
version Show version of the package
models (deployed-models)
List models deployed on server
describe (describe-models, man)
Show documentation for models
run (run-model) Run a model
Run a Model
credmark run cmk.total-supply
{"slug": "cmk.total-supply", "version": "1.0", "output": {"total_supply": 1e+26}, "dependencies": {"contract.metadata": {"1.0": 1}, "cmk.total-supply": {"1.0": 1}}, "runtime": 3108}
SDK Usage
Create a client and call methods for API calls.
To run a model:
try:
client = CredmarkClient()
result = client.run_model('cmk.total-supply')
if 'output' in result:
print(result['output'])
else:
# Model error
print('Error', result['error'])
except Exception as err:
# requests/urllib exception
print('Exception', str(err))
You can automatically raise model errors as exceptions:
try:
client = CredmarkClient()
result = client.run_model('cmk.total-supply', raise_error_results=True)
print(result['output'])
except ModelBaseError as err:
# model error
print('Model Error:', str(err), err.data)
except Exception as err:
# requests/urllib exception
print('Exception', str(err))