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

Configurations

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

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

0x prefixed Hexadecimal string for the private signing key

Responses

Request samples

Content type
application/json
{
  • "private_key": "string"
}

Response samples

Content type
application/json
{
  • "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:
bearer_token
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

Request samples

Content type
application/json
{
  • "address": "string"
}

Response samples

Content type
application/json
{
  • "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:
bearer_token
path Parameters
service_id
required
string
Request Body schema: application/json
interval
integer

Number of minutes between state generations and uploads

Responses

Request samples

Content type
application/json
{
  • "interval": 0
}

Response samples

Content type
application/json
{
  • "environment_id": "string",
  • "config": {
    },
  • "account": {
    }
}

Configure the target Ethereum network to submit reports to.

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

Responses

Request samples

Content type
application/json
{
  • "network": "mainnet"
}

Response samples

Content type
application/json
{
  • "environment_id": "string",
  • "config": {
    },
  • "account": {
    }
}

Deploy the Tether Smart Contract to the target Ethereum network.

Authorizations:
bearer_token
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
{
  • "arbitratorAddress": "string"
}

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

Authorizations:
bearer_token
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

De-activate the relay to stop sending reports.

Authorizations:
bearer_token
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Account

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

Authorizations:
app_creds

Responses

Response samples

Content type
application/json
{
  • "address": "string",
  • "balance": "string"
}

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

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

Name of the Ethereum network

Responses

Response samples

Content type
application/json
{
  • "address": "string",
  • "balance": "string"
}

Reports

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

Authorizations:
app_creds

Responses

Response samples

Content type
application/json
{
  • "count": "string"
}

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

Authorizations:
app_creds

Responses

Response samples

Content type
application/json
{
  • "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:
app_creds
path Parameters
report_index
required
integer

Responses

Response samples

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