API Reference for the Mainnet Tether Service (1.0)

Download OpenAPI specification:Download

The Public Ethereum Tether service hightens the security of a permissioned blockchain running in Kaleido, by pinning signed state hashes to an Ethereum public chain. Using the service API a DApp can configure the interval to collect the state hashes and submit the signed payload to the target Ethereum network, as well as downloading a pinned state from the network to verify the integrity of the local network.

The service can be configured for the report target (mainnet or rinkeby), how often reports are generated and uploaded, as well as how the signing account is obtained.

The reports generated by each blockchain node in the Kaleido environment to capture a secure commitment of the latest state.

tether

Authentication

bearer_token

Kaleido API for platform resources are authenticated using the Bearer token in the Authorization HTTP header. The token can either be the API Key created in the Kaleido user's account, or the JWT token issued to the user's browser as a cookie after logging in. The JWT token is set to expire in one hour.

Security scheme type: HTTP
HTTP Authorization Scheme bearer

app_creds

Kaleido API for marketplace services are authenticated using application credentials. The username and password must be created in the environment containing the service instance as "Application Credentials". For more details see the documentation on App Credentials.

Security scheme type: HTTP
HTTP Authorization Scheme basic

Configurations

Configure the signing key for the service to use to deploy the Tether smart contract and submit reports

Authorizations:
path Parameters
service_id
required
string
Request Body schema: application/json
private_key
string

0x prefixed Hexadecimal string for the private signing key

Responses

201

Private Key Uploaded

post /tether/{service_id}/account

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/account

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/account

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/account

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/account

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/account

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "private_key": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string"
}

Configure the Tether smart contract address to submit reports to. Note that the uploaded private key must be the deployer of the smart contract. Otherwise any attempted submission will be rejected by the contract.

Authorizations:
path Parameters
service_id
required
string
Request Body schema: application/json
address
string

0x prefixed Hexadecimal string for the deployed Tether Smart Contract address

Responses

201

Contract Address Configured

post /tether/{service_id}/arbitratorAddress

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/arbitratorAddress

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/arbitratorAddress

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/arbitratorAddress

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/arbitratorAddress

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/arbitratorAddress

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "environment_id": "string",
  • "config":
    {
    },
  • "account":
    {
    }
}

Configure the Tether smart contract address to submit reports to. Note that the uploaded private key must be the deployer of the smart contract. Otherwise any attempted submission will be rejected by the contract.

Authorizations:
path Parameters
service_id
required
string
Request Body schema: application/json
interval
integer

Number of minutes between state generations and uploads

Responses

201

Interval Configured

post /tether/{service_id}/interval

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/interval

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/interval

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/interval

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/interval

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/interval

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "interval": 0
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "environment_id": "string",
  • "config":
    {
    },
  • "account":
    {
    }
}

Configure the target Ethereum network to submit reports to.

Authorizations:
path Parameters
service_id
required
string
Request Body schema: application/json
network
string
Enum: "mainnet" "rinkeby"

Responses

201

Target Network Configured

post /tether/{service_id}/targetNetwork

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/targetNetwork

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/targetNetwork

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/targetNetwork

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/targetNetwork

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/targetNetwork

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "network": "mainnet"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "environment_id": "string",
  • "config":
    {
    },
  • "account":
    {
    }
}

Deploy the Tether Smart Contract to the target Ethereum network.

Authorizations:
path Parameters
service_id
required
string

Responses

201

Contract Deployed

post /tether/{service_id}/deploy

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/deploy

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/deploy

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/deploy

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/deploy

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/deploy

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "arbitratorAddress": "string"
}

Activate the relay to start generating the state reports and sending to the target network at the configured interval.

Authorizations:
path Parameters
service_id
required
string

Responses

201

Relay Activated

post /tether/{service_id}/activate

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/activate

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/activate

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/activate

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/activate

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/activate

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "success": true
}

De-activate the relay to stop sending reports.

Authorizations:
path Parameters
service_id
required
string

Responses

201

Relay De-activated

post /tether/{service_id}/deactivate

AWS US API base endpoint

https://console.kaleido.io/api/v1/tether/{service_id}/deactivate

AWS EU API base endpoint

https://console-eu.kaleido.io/api/v1/tether/{service_id}/deactivate

AWS Sydney API base endpoint

https://console-ap.kaleido.io/api/v1/tether/{service_id}/deactivate

AWS Seoul API base endpoint

https://console-ko.kaleido.io/api/v1/tether/{service_id}/deactivate

Azure US API base endpoint

https://console-us1.kaleido.io/api/v1/tether/{service_id}/deactivate

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "success": true
}

Account

Returns the Ethereum account used by the Tether service to submit transactions to the public Ethereum network

Authorizations:

Responses

200

Account Retrieved

get /account

Each Kaleido service instance gets assigned a unique hostname. The service URL can be obtained from the /status endpoint for that service. E.g: https://console.kaleido.io/api/v1/c/{consortia_id}/e/{environment_id}/services/{service_id}/status

https://service_host/api/v1/account

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string",
  • "balance": "string"
}

Returns the Ether balance for the signing account on the target Ethereum network (mainnet or rinkeby)

Authorizations:
path Parameters
network
required
string
Enum: "mainnet" "rinkeby"

Name of the Ethereum network

Responses

200

Balance Retrieved

get /account/balances/{network}

Each Kaleido service instance gets assigned a unique hostname. The service URL can be obtained from the /status endpoint for that service. E.g: https://console.kaleido.io/api/v1/c/{consortia_id}/e/{environment_id}/services/{service_id}/status

https://service_host/api/v1/account/balances/{network}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "address": "string",
  • "balance": "string"
}

Reports

Returns the number of signed hash reports that have been uploaded to the target Ethereum network

Authorizations:

Responses

200

Reports Count Retrieved

get /reports/count

Each Kaleido service instance gets assigned a unique hostname. The service URL can be obtained from the /status endpoint for that service. E.g: https://console.kaleido.io/api/v1/c/{consortia_id}/e/{environment_id}/services/{service_id}/status

https://service_host/api/v1/reports/count

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "count": "string"
}

Returns the latest signed hash report that has been uploaded to the target Ethereum network

Authorizations:

Responses

200

Report Retrieved

get /reports/latest

Each Kaleido service instance gets assigned a unique hostname. The service URL can be obtained from the /status endpoint for that service. E.g: https://console.kaleido.io/api/v1/c/{consortia_id}/e/{environment_id}/services/{service_id}/status

https://service_host/api/v1/reports/latest

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nodeIdHash": "string",
  • "blockNumber": 0,
  • "blockHash": "string",
  • "checksum": "string",
  • "signature":
    {
    }
}

Returns the latest signed hash report that has been uploaded to the target Ethereum network

Authorizations:
path Parameters
report_index
required
integer

Responses

200

Report Retrieved

get /reports/{report_index}

Each Kaleido service instance gets assigned a unique hostname. The service URL can be obtained from the /status endpoint for that service. E.g: https://console.kaleido.io/api/v1/c/{consortia_id}/e/{environment_id}/services/{service_id}/status

https://service_host/api/v1/reports/{report_index}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "nodeIdHash": "string",
  • "blockNumber": 0,
  • "blockHash": "string",
  • "checksum": "string",
  • "signature":
    {
    }
}