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

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:
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:
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:
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:
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:
path Parameters
service_id
required
string

Responses

Response samples

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

De-activate the relay to stop sending reports.

Authorizations:
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:

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:
path Parameters
network
required
string
Enum: "mainnet" "rinkeby"

Name of the Ethereum network

Responses

Response samples

Content type
application/json
{