Skip to content

Partner API & Core client cheat sheet

This section presents all a collection of Qredo and API specific terms and concepts, as well as summaries of each tutorial chapter.

Before you continue, here's a list of some Qredo related concepts (click to expand):

Qredo-related terminology
  • Qredo Network (also interchangeable with Qredochain), the Qredo Network is a Layer 2 (L2) blockchain. Each transaction on Qredochain undergoes custody, which means that it is either approved or rejected in order to process. The native token on the Qredochain is the QRDO token [kh-ree-doh].
  • Custody - approval control over outgoing transactions of a Qredo wallet. With Qredo, nearly all transactions out of any Qredo wallet require an approval, regardless of asset type. Qredo accounts that perform custody using the Qredo Signing app are called approvers. Additionally, anyone with API access can set up a Core Client, which acts as a Partner API approver.
  • Qredo account is an account that can access their personal Qredochain assets and wallets. You cannot work with the API unless you have a Qredo account. To create an account, you must use the combination of the Qredo web app (in your web browser) and Qredo Signing app (on your mobile device).
  • Qredo Wallet is the browser-based software that allows you to access and manage your assets on the Qredochain.
  • Qredo Signing app is the mobile application that allows you to approve or reject transactions. There is no other way for a person to approve transactions: they must use the Qredo Signing app, which is available on iPhone and Android.
  • Asset might have different meanings depending on context. When used in singular, asset is often interchangeable with asset type and refers to a Level 1 crypto asset (such as BTC or ETH) that is available on the Level 2 Qredo blockchain. When used in plural, assets are often referred to as wallet assets or transaction assets, meaning the asset type and amount in question (e.g. 1 BTC in a wallet or in a transaction).

Partner API-specific concepts

For smooth Partner API operations experience, it is important that you are familiar with the list of concepts presented here (click to expand):

Partner API-specific terminology
  • company on the Qredo Network is an ID, part of a Qredo account, that holds funds and wallets. You add approvers on a company level so each company has its own Trusted Network. Its members can be assigned to perform custody to funds and wallets that the company holds. The company is equivalent to an organization in the Qredo web app but it is not the same thing.
  • fund is the actual sub-entity to a company that holds Qredo wallets and the approval rules for transactions with these wallets: the so-called custodial policies. These policies also include the trusted parties that perform custody over transactions within that fund.
  • trusted_party is a Qredo approver: either a Qredo user or a Core client. Trusted parties belong to a company and form its trusted network. However, funds and wallets must additionally appoint approvers out of the trusted network and that is when they become eligible to apply custody.
  • Custodial policies define number of approvals needed for processing a transaction out of a given Qredo wallet. There are two types of custodial policies: policy_tx for transfers (moving assets from one Qredo wallet to another) and policy_withdraw for withdrawals (moving assets from a Qredo wallet to a L1 blockchain wallet). Custodial policies apply per fund (fund policies) or per wallets held by a fund (custom policies).
  • Core Client is an API-specific user type that performs custody: an API approver bot that can be further automated. It is implemented as a client-side software that connects to its dedicated Core Client service and has an approver identity which allows it to approve or reject transfer or withdrawal requests on the Qredochain. The Core Client instance is identified by its core client_ID which correlates to a human approver ID. To help emulate the human approver experience, the Core Client connects to a dedicated websocket feed that prints out every new transaction that is pending approval. Additionally, the Core client functionality can be extended beyond a "regular" API approver and can act on behalf of an exchange. This allows the exchange Core client to perform additional tasks, such as approve requests to connect Qredo wallets, perform sweep transactions and act as a "master" approver for dedicated wallets.

API environments: Sandbox vs Production

There are two environments available: Production and Sandbox. The experience in using Sandbox or Production is similar, however there are a few outstanding differences:

Different Base URLs

  • Base URL on Production:

Test environment

URLs for Swagger UI docs on Sandbox

Different URLs for Qredo web app

Use the same Signing App on mobile for both Sandbox and Prod

You can use the very same signing app for signing all your Qredo accounts, regardless on which environment they reside. In short: different web app for Sandbox vs Production but the same signing app on mobile.

Automatic API access on Sandbox

When you create an account on Sandbox (using the Qredo web app), you automatically obtain API access: no need to enroll for access as with Production. You still need to generate your API key to use the API.

Do not sign API requests on Sandbox

You do not have to sign API calls on Sandbox. This means that with each request, you do not have to pass the headers x-sign and x-timestamp (or x-nonce).

Only testnet assets on Sandbox

You cannot perform transactions of real assets, such as BTC or ETH. On Sandbox, only Testnet assets are supported: BTC-TESTNET and ETH-TESTNET.

Summary of API docs sections

Each summary briefly describes the steps of every subsection to multi-level chapters:

Get started summary

  1. Sign up using Qredo web app and Qredo signing app and then apply for Partner API access.
    See Create account.
  2. With access granted, generate RSA keys for API call signatures, then generate your API key in the Qredo web app, and finally add public signing key on the very same screen in Qredo web app.
    See Generate keys.
  3. Start signing calls using the Partner API Signing Client.
    See Sign API calls.

Partner API quick start summary

  1. Create a company. You cannot do much with the API without a company.
    See Step 1. Create a company.
  2. Add a trusted party to your company. You cannot perform custody without at least one trusted party.
    See Step 2. Create your trusted network.
  3. Create a fund with Qredo wallets. A fund is the only way to have Qredo wallets. Custodial policies and also the approvers are defined at this stage.
    See Step 3. Create a fund.
  4. Deposit assets from L1 blockchains in one of fund's Qredo wallets.
    See Step 4. Perform a deposit.
  5. Perform a transfer out of selected Qredo wallet to another Qredo wallet. The transfer undergoes custody in order to complete.
    See Step 5. Perform a transfer.
  6. Whitelist a L1 blockchain wallet and withdraw to it assets out of the selected Qredo wallet. The withdrawal undergoes custody in order to complete.
    See Step 6. Perform a withdrawal.

Core Client summary

  1. Create a Core Client using the API, then enlist it as a trusted party of your company and finally appoint the Core client as an approver for a fund or wallet.
    See Create and set up a Core client.
  2. Connect the Core Client to a websocket feed and start receiving requests for custody.
    See Connect the Core Client to feed.
  3. Use the Core Client API endpoint to query, approve and reject incoming transaction requests.
    See Core Client custody.

Exchange quick start summary

Exchange quick start is work in progress

Please note that the Exchange quick start section is still work in progress.

  1. Create a Core Client using the API.
  2. Set up branding: contact Qredo and register your Exchange Core Client id, plus your exchange name and logo, as well as user metadata.
  3. Supply a list with test accounts: Qredo users who will be able to visualize and use your exchange in the Qredo Web app.
  4. Connect your Exchange Core Client to a web socket and start listening for client activity.
  5. Access the Qredo Web app with a test end user account (from the list provided in step 3) in the Qredo Web app, set up a fund and wallet to connect.
  6. On the Exchange Core Client, approve the wallet connect request.
  7. From end user account in the Qredo Web app, confirm the wallet is activated.
  8. Perform tests of available actions and websocket feed with the Exchange Core Client.

Atomic swaps summary

Atomic swaps is work in progress

Please note that the Atomic swaps section is still work in progress.

  1. As Maker, create an atomic swap quote using POST atomicswap/make.
  2. Have Maker's approvers approve the quote.
  3. As Maker, submit the quote to the Liquidity Hub using POST /liquidityhub.
  4. As a potential Taker, retrieve quotes on the Liquidity Hub using GET /liquidityhub or a websocket feed.
  5. As Taker, select a quote by tx_id to take it using POST /atomicswap/take/{tx_id}.
  6. Have Taker's approvers approve the quote.

Posting to liquidity hub is optional

You are not obliged to publish to liquidity hub. Instead, you may choose to offer your quote tx_id to a selected party using a secure channel of your preference. If you choose that, skip steps 3 and 4.

Last update: 2022-11-03