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.
Glossary: Qredo-related terms¶
Before you continue, here's a list of some Qredo related concepts (click to expand):
- Qredo Network - 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 a 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 apply custody to transactions (be an approver). 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 – 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 supported 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. 1BTC 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
companyon 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.
fundis 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_partyis 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_txfor transfers (moving assets from one Qredo wallet to another) and
policy_withdrawfor 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: it's an approver user type. It is implemented as a client that collects custody-related feed, such as pending transfer or withdrawal requests. The Core client extends custody functionality available to the human approver which allows it to act on behalf of an exchange: approve requests to connect Qredo wallets, sweep transactions and act as a "master" approver for dedicated wallets.
API environments: Play vs Production¶
There are two environments available: Production and Play. The experience in using Play or Production is similar, however there are a few outstanding differences:
Different Base URLs¶
- Base URL on Play:
- Base URL on Production:
URLs for Swagger UI docs on Play)¶
- Play Swagger UI documentation: https://play-swagger.qredo.network/
Different URLs for Qredo web app¶
Use the same signing app on mobile for both Play 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 Play vs Production but the same signing app on mobile.
Automatic API access on Play¶
When you create an account on Play (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 Play¶
You do not have to sign API calls on Play. This means that with each request, you do not have to pass the headers
Only testnet assets on Play¶
You cannot perform transactions of real assets, such as BTC or ETH. On Play, only Testnet assets are supported:
Summary of API docs sections¶
Each summary briefly describes the steps of every subsection to multi-level chapters:
Get started summary¶
- Sign up using Qredo web app and Qredo signing app and then apply for Partner API access.
See Create account.
- 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.
- Start signing calls using the Partner API Signing Client.
See Sign API calls.
Partner API quick start summary¶
- Create a company. You cannot do much with the API without a company.
See Step 1. Create a company.
- Add a trusted party to your company. You cannot perform custody without at least one trusted party.
See Step 2. Create your trusted network.
- 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.
- Deposit assets from L1 blockchains in one of fund's Qredo wallets.
See Step 4. Perform a deposit.
- 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.
- 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¶
- 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.
- Connect the Core client to a websocket feed and start receiving requests for custody.
See Connect the Core client to feed.
- 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.
- Create a Core client using the API.
- Set up branding: contact Qredo and register your exchange core client
id, plus your exchange name and logo, as well as user metadata.
- Supply a list with test accounts: Qredo users who will be able to visualize and use your exchange in the Qredo Web app.
- Connect your exchange core client to a web socket and start listening for client activity.
- 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.
- On the exchange core client, approve the wallet connect request.
- From end user account in the Qredo Web app, confirm the wallet is activated.
- 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.
- As Maker, create an atomic swap quote using
- Have Maker's approvers approve the quote.
- As Maker, submit the quote to the Liquidity Hub using
- As a potential Taker, retrieve quotes on the Liquidity Hub using
GET /liquidityhubor a websocket feed.
- As Taker, select a quote by
tx_idto take it using
- 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.