Quant Overledger API (v3)

Download OpenAPI specification:Download

The Overledger API V3 is a new and improved set of APIs that offer new API flows and improved customer experience when interacting with Overledger. These REST APIs have been redesigned following customer feedback and brand-new insights in Blockchain technologies. The V3 API includes several new features, including:

• A more consistent and documented API flow. The V3 API has been redesigned to be more user-friendly and easier to understand.

• The V3 API supports a wider range of operations than the V2 API, including the ability to Create webhooks in order to receive updates directly from a Blockchain and the ability to Create bridge asset transfers, and more.

How to use V3 : To use V3, you need to specify the API version in the header of your requests. For example, if you are using the ‘Prepare asset transfer’ for bridge flow, you would need to specify the API version as ‘API Version: 3.0.0’.

Create A Smart Contract Write Transaction

Prepare a Smart Contract Write transaction for signing

When creating a transaction in Overledger, the first step is to prepare the transaction for signing. This API allows you to call any function that changes/updates data on any contract deployed on Ethereum based blockchains or the Hyperledger Fabric Sandbox. This first step transforms a transaction request into a payload that can be signed and then returns a request ID that is used to execute the transaction after it is signed.

Security
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
required
object (Location)

The blockchain network and technology the transaction will be submitted to

signingAccountId
required
string [ 0 .. 500 ] characters ^[a-zA-Z0-9:,\/.=\-\s]{1,500}$

The blockchain account that will be monitored for transaction updates

functionName
required
string^[a-zA-Z0-9]+$
required
Array of objects (Parameter)
smartContractId
required
string [ 0 .. 500 ] characters ^[a-zA-Z0-9-]{1,100}$

The smart contract that will be monitored for transaction updates

Responses
200

OK

400

Bad Request

401

Unauthorized

503

Service Unavailable

post/api/preparations/transactions/smart-contracts/write
Request samples
application/json
{
  • "location": {
    },
  • "signingAccountId": "0x7e0A65af0Dae83870Ce812F34C3A3D8626530d10",
  • "functionName": "transfer",
  • "inputParameters": [
    ],
  • "smartContractId": "0xF9cd6C86992Fce1481dBc4bDB7E1b101c1e8cEE2"
}
Response samples
application/json
{
  • "location": {
    },
  • "requestId": "6805f22e-38af-4972-addf-db027baceb8d",
  • "dltFee": {
    },
  • "nativeData": {
    }
}

Execute a signed transaction to the requested DLT

Generates a request ID and automatically executes the transaction search on the requested DLT.

Security
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
signedTransaction
string

The raw data after transaction signing

requestId
required
string [ 0 .. 36 ] characters ^[A-Za-z0-9-]{1,36}$

The ID assigned to a preparation request in Overledger

Responses
200

OK

400

Bad Request

401

Unauthorized

503

Service Unavailable

post/api/executions/transactions
Request samples
application/json
{
  • "signedTransaction": "79763168-a4f9-42bf-9f10-2e08491136a7",
  • "signed": "0xf8a9398501ef4f86e682a0c294f9cd6c86992fce1481dbc4bdb7e1b101c1e8cee280b844a9059cbb000000000000000000000000d8b31b65878a6b1a6caf9f4819c1a42d68a7a11600000000000000000000000000000000000000000000000000038d7ea4c6800029a088680bffd2eb74053e968ac8bcd1f76beaa61b353d8616a8cc559e57685080bea07a77b7591f09290fbb9cda5263471e8a9ca46f4c7b30d6a4885e583771d809f5"
}
Response samples
application/json
{
  • "location": {
    },
  • "requestId": "012c6f4e-926e-47b8-b3f0-acfa056cd017",
  • "transactionId": "0x6c497169f22fa420bfb96669960c15ab53caf4d9162f2c0d0a3ff29121773597",
  • "status": {
    },
  • "timestamp": "1624007506"
}

Create A Smart Contract Read Transaction

Submit a smart contract read request

Submits a query for reading a smart contract function on a requested DLT

Security
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
required
object (Location)

The blockchain network and technology the transaction will be submitted to

functionName
required
string^[a-zA-Z0-9]+$
required
Array of objects (Parameter)
smartContractId
required
string [ 0 .. 500 ] characters ^[a-zA-Z0-9-]{1,100}$

The smart contract that will be monitored for transaction updates

required
Array of objects (ReturnParameter)
Responses
200

OK

400

Bad Request

401

Unauthorized

503

Service Unavailable

post/api/smart-contracts/read
Request samples
application/json
{
  • "location": {
    },
  • "functionName": "balanceOf",
  • "inputParameters": [
    ],
  • "smartContractId": "0xb0D693d6e0e3A31A55510728Cc815c02F6A3bf64",
  • "outputParameters": [
    ]
}
Response samples
application/json
{
  • "location": {
    },
  • "functionName": "balanceOf",
  • "smartContractId": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  • "outputParameters": [
    ]
}

Sign a Transaction

Sign a transaction in Sandbox with application key

Takes the payload from our preparation API’s and signs the transaction using a private key. The below information will need to be added to the signing request payload in order to sign a transaction before executing. This API supports signing for standard and native transactions, token interactions and Bridge asset transfers

  • User token
  • TSR name
  • KeyId
  • Payload from preparation step
Security
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
One of:
keyId
required
string [ 0 .. 500 ] characters ^[a-zA-Z0-9:,\/.=\-\s]{1,500}

Key ID to be used to sign the transaction and transfer asset

required
object (Fee)

Details about the fee charged by the underlying technology network for the asset transfer

requestId
required
string [ 0 .. 36 ] characters ^[A-Za-z0-9\-_. ]{1,36}$

The ID assigned to a preparation request in Overledger

required
object (Fee)

Details about the fee charged by the underlying technology network for the asset transfer

transactionSigningResponderName
required
string([A-z0-9_-]){3,40}

The name of the Transaction Signing Responder you would like to use

nativeData
required
object (PreparedTransactionNativeData)
Responses
200

All good!

400

Bad Request

401

Unauthorized

500

Something went wrong on our side

503

Transaction-Signing-Responder-Unavailable

post/api/transaction-signing-sandbox
Request samples
application/json

Ethereum

{
  • "keyId": "0x01e91e56f75d15c00a6c59f381979be732165427",
  • "gatewayFee": {
    },
  • "requestId": "e566fab4-141d-445e-8c3c-e936c553cc99",
  • "dltFee": {
    },
  • "transactionSigningResponderName": "CTA",
  • "nativeData": {
    }
}
Response samples
application/json

Sign Transaction Response

{
  • "signed": "0x02f88b058085174876e800851b96b62a7282539894d8b31b65878a6b1a6caf9f4819c1a42d68a7a11686029ec993e0809954657374696e6720746865204b4d53207369676e6174757265c080a0b4ecb2d95d781538471668d419371e96f0bf95b878a758adc3852fa1fed5bfc6a047fb681f5f54159118ca9a1543b8e5c849349bb36898f47fe196c5afa6c0e7f4",
  • "requestId": "b113f9aa-975d-45a5-9c98-488bf33b708e"
}

Create Webhook for Account Updates

Receive updates about transactions for an account

Create a Webhook to receive updates to a callback URL each time a transaction happens either from or to a Blockchain account

SecurityOAuth2-Security-Scheme
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
accountId
required
string [ 0 .. 500 ] characters ^[a-zA-Z0-9:,\/.=\-\s]{1,500}

The blockchain account that will be monitored for transaction updates

required
object (Location)

The blockchain network and technology the transaction will be submitted to

callbackUrl
required
string [ 0 .. 300 ] characters

The URL that will receive a notification each time there is an update

Responses
200

OK

400

Bad Request

401

Unauthorized

503

Service Unavailable

post/api/webhooks/accounts
Request samples
application/json
{
  • "accountId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "location": {
    },
  • "callbackUrl": "https://www.example.com"
}
Response samples
application/json
{
  • "accountId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "createdAt": "1678282471",
  • "webhookId": "12a13ee9-ac7e-4d73-8317-9713e1638d2c",
  • "callbackUrlStatus": "ACTIVE",
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "updatedAt": "1678282471"
}

Manage Webhooks for Account Updates

Retrieve a list of Webhooks for Accounts

Returns a list of all active and inactive Webhooks created by your application for account updates

SecurityOAuth2-Security-Scheme
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Responses
200

OK

401

Unauthorized

503

Service Unavailable

get/api/webhooks/accounts
Request samples
Response samples
application/json
[
  • {
    }
]

Update the Callback URL for an Account Webhook

Updates the callback URL used for the webhook and changes it’s status to active

SecurityOAuth2-Security-Scheme
Request
path Parameters
webhookId
required
string

A unique ID assigned to the webhook once it is created in Overledger

header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
callbackUrl
required
string [ 0 .. 300 ] characters

The URL that will receive a notification each time there is an update

Responses
200

OK

400

Bad Request

401

Unauthorized

404

Not Found

503

Service Unavailable

patch/api/webhooks/accounts/{webhookId}
Request samples
application/json
{}
Response samples
application/json
{
  • "accountId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "createdAt": "1678282471",
  • "webhookId": "12a13ee9-ac7e-4d73-8317-9713e1638d2c",
  • "callbackUrlStatus": "ACTIVE",
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "updatedAt": "1678282471"
}

Remove an Account Webhook

Deletes a Webhook based on the specified Webhook ID created by your application. This will stop updates being sent to the callback URL for that Webhook

SecurityOAuth2-Security-Scheme
Request
path Parameters
webhookId
required
string

A unique ID assigned to the webhook once it is created in Overledger

header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Responses
204

No content

401

Unauthorized

404

Not Found

503

Service Unavailable

delete/api/webhooks/accounts/{webhookId}
Request samples
Response samples
application/json
{
  • "errors": [
    ],
  • "errorCount": 1
}

Retrieve information about an Account Webhook

Returns information about a Webhook based on the specified Webhook Id

SecurityOAuth2-Security-Scheme
Request
path Parameters
webhookId
required
string

A unique ID assigned to the webhook once it is created in Overledger

header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Responses
200

OK

401

Unauthorized

404

Not Found

503

Service Unavailable

get/api/webhooks/accounts/{webhookId}
Request samples
Response samples
application/json
{
  • "accountId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "createdAt": "1678282471",
  • "webhookId": "12a13ee9-ac7e-4d73-8317-9713e1638d2c",
  • "callbackUrlStatus": "ACTIVE",
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "updatedAt": "1678282471"
}

Create Webhook for Smart Contract Events

Receive updates about transactions for a smart contract event

Create a Webhook to receive updates to a callback URL each time a transaction happens on a Smart contract

SecurityOAuth2-Security-Scheme
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
required
object (Location)

The blockchain network and technology the transaction will be submitted to

callbackUrl
required
string [ 0 .. 300 ] characters

The URL that will receive a notification each time there is an update

smartContractId
required
string [ 0 .. 100 ] characters ^[a-zA-Z0-9-]{1,100}$

The smart contract that will be monitored for transaction updates

Responses
200

OK

400

Bad Request

401

Unauthorized

503

Service Unavailable

post/api/webhooks/smart-contract-events
Request samples
application/json
{
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "smartContractId": "0xpo98iuytgbnmjkoi87ytghjiu"
}
Response samples
application/json
{
  • "createdAt": "1678282471",
  • "webhookId": "90fd50e7-9bae-4bb0-85e1-6db21180b53d",
  • "callbackUrlStatus": "ACTIVE",
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "smartContractId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "updatedAt": "1678282471"
}

Manage Webhooks for Smart Contract Events

Update the Callback URL for a Smart Contract Event Webhook

Updates the callback URL for the specified webhook id and updates it’s status to active

SecurityOAuth2-Security-Scheme
Request
path Parameters
webhookId
required
string

A unique ID assigned to the webhook once it is created in Overledger

header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Request Body schema: application/json
required
callbackUrl
required
string [ 0 .. 300 ] characters

The URL that will receive a notification each time there is an update

Responses
200

OK

400

Bad Request

401

Unauthorized

404

Not Found

503

Service Unavailable

patch/api/webhooks/smart-contract-events/{webhookId}
Request samples
application/json
{}
Response samples
application/json
{
  • "createdAt": "1678282471",
  • "webhookId": "90fd50e7-9bae-4bb0-85e1-6db21180b53d",
  • "callbackUrlStatus": "ACTIVE",
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "smartContractId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "updatedAt": "1678282471"
}

Remove a Smart Contract Event Webhook

Deletes a Webhook based on the specified Webhook ID created by your application . This will stop updates being sent to the callback URL for that Webhook

SecurityOAuth2-Security-Scheme
Request
path Parameters
webhookId
required
string

A unique ID assigned to the webhook once it is created in Overledger

header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Responses
204

No content

401

Unauthorized

404

Not Found

503

Service Unavailable

delete/api/webhooks/smart-contract-events/{webhookId}
Request samples
Response samples
application/json
{
  • "errors": [
    ],
  • "errorCount": 1
}

Retrieve information about a Smart Contract Event Webhook

Returns information about a Webhook based on the specified Webhook Id

SecurityOAuth2-Security-Scheme
Request
path Parameters
webhookId
required
string

A unique ID assigned to the webhook once it is created in Overledger

header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Responses
200

OK

401

Unauthorized

404

Not Found

503

Service Unavailable

get/api/webhooks/smart-contract-events/{webhookId}
Request samples
Response samples
application/json
{
  • "createdAt": "1678282471",
  • "webhookId": "90fd50e7-9bae-4bb0-85e1-6db21180b53d",
  • "callbackUrlStatus": "ACTIVE",
  • "location": {
    },
  • "callbackUrl": "http://www.example.com",
  • "smartContractId": "0xpo98iuytgbnmjkoi87ytghjiu",
  • "updatedAt": "1678282471"
}

Retrieve a list of Webhooks for Smart Contract Events

Retrieve a list of all active or inactive Webhooks created by your application for Smart Contract Events

SecurityOAuth2-Security-Scheme
Request
header Parameters
Authorization
required
string [ 0 .. 5010 ] characters ^Bearer [A-Za-z0-9\-_. ]{1,5010}$
API-Version
required
string
Responses
200

OK

401

Unauthorized

503

Service Unavailable

get/api/webhooks/smart-contract-events
Request samples
Response samples
application/json
[
  • {
    }
]

Create Asset Transfer for Bridge

Prepare asset transfer for bridge

The first step of submitting an asset transfer via the bridge requires preparing the transaction for signing. This API transforms a transaction request into a payload that can be signed. It returns a request ID that is used to execute the transaction after it is signed

SecurityOAuth2-Security-Scheme
Request
path Parameters
bridgeId
required
string <uuid>

The ID of the bridge created in Quant Connect

header Parameters
API-Version
required
string
Request Body schema: application/json
required
originIdentity
required
string

The address of the sender initiating the asset transfer

assetAmount
string

The amount of asset to be transferred. This field is applicable only to QRC20 tokens

assetId
string

The ID of the asset to be transferred. This field is applicable only to QRC721 tokens

destinationIdentity
required
string

The address of the recipient receiving the asset transfer

Responses
201

Created

400

Bad request

404

Not found

500

Internal server error

post/api/bridges/{bridgeId}/asset-transfers/preparation
Request samples
application/json
{
  • "originIdentity": "0x23Fe348AeE5C1851090D353EcC4b5DeC2cC4415D",
  • "assetAmount": "10",
  • "assetId": "2135185725",
  • "destinationIdentity": "0x32a591752aD1664912E339eAF66b6ab9013F472c"
}
Response samples
application/json
{
  • "gatewayFee": {
    },
  • "requestId": "111d77e4-5947-4bac-b0a9-31850297b111",
  • "dltFee": {
    },
  • "nativeData": {
    }
}

Execute asset transfer for bridge

This API endpoint takes a request ID and submits a signed asset transfer to the destination network

SecurityOAuth2-Security-Scheme
Request
path Parameters
bridgeId
required
string <uuid>

The ID of the bridge created in Quant Connect

header Parameters
API-Version
required
string
Request Body schema: application/json
required
signed
required
string

The raw data after transaction signing

requestId
required
string <uuid>

The ID assigned to the asset transfer for the preparation request

Responses
201

Created

400

Bad request

404

Not found

500

Internal server error

post/api/bridges/{bridgeId}/asset-transfers
Request samples
application/json
{
  • "signed": "0xf8a9398501ef4f86e682a0c294f9cd6c86992fce1481dbc4bdb7e1b101c1e8cee280b844a9059cbb000000000000000000000000d8b31b65878a6b1a6caf9f4819c1a42d68a7a11600000000000000000000000000000000000000000000000000038d7ea4c6800029a088680bffd2eb74053e968ac8bcd1f76beaa61b353d8616a8cc559e57685080bea07a77b7591f09290fbb9cda5263471e8a9ca46f4c7b30d6a4885e583771d809f5",
  • "requestId": "d3855522-0f51-4b97-9ecd-b8ff3fd4fccc"
}
Response samples
application/json
{
  • "createdAt": "2023-07-24T08:30:27.215Z",
  • "tokenId": "12345",
  • "originAssetInfo": {
    },
  • "tokenAmount": "10",
  • "id": "18cd77e4-5947-4bac-b0a9-33330297b149",
  • "error": {
    },
  • "destinationAssetInfo": {
    },
  • "assetType": "FUNGIBLE",
  • "status": "TRANSFERRED_TO_ORIGIN_GATEWAY_PENDING",
  • "updatedAt": "2023-07-24T08:30:27.215Z"
}

Retrieve Information About an Asset Transfer

Retrieve information about an asset transfer

This endpoint allows you to retrieve detailed information about a specific asset transfer by providing its unique assetTransferId and bridgeId. It retrieves the data associated with the asset transfer, including transaction details and status

SecurityOAuth2-Security-Scheme
Request
path Parameters
bridgeId
required
string <uuid>

The ID of the bridge created in Quant Connect

assetTransferId
required
string <uuid>

The ID assigned to the asset transfer, received as a response from the asset execution request

header Parameters
API-Version
required
string
Responses
200

OK

400

Bad request

404

Not found

500

Internal server error

get/api/bridges/{bridgeId}/asset-transfers/{assetTransferId}
Request samples
Response samples
application/json
{
  • "createdAt": "2023-07-24T08:30:27.215Z",
  • "tokenId": "12345",
  • "originAssetInfo": {
    },
  • "tokenAmount": "10",
  • "id": "18cd77e4-5947-4bac-b0a9-33330297b149",
  • "error": {
    },
  • "destinationAssetInfo": {
    },
  • "assetType": "FUNGIBLE",
  • "status": "TRANSFERRED_TO_ORIGIN_GATEWAY_PENDING",
  • "updatedAt": "2023-07-24T08:30:27.215Z"
}