tbDEX
Purpose
This repo contains specifications for tbDEX
Specification |
Description |
Status |
Protocol |
Defines the message and resource formats that make up the tbDEX messaging protocol |
Draft |
HTTP API |
Defines a REST API that can be hosted by an individual PFI that wants to provide liquidity via tbDEX |
Draft |
sequenceDiagram
participant Alice
participant PFI
PFI->>Alice: Offering (pull)
Alice->>+PFI: RFQ (push)
PFI->>Alice: Quote (push)
Alice->>PFI: Order (push)
PFI-->>Alice: OrderStatus (push)
deactivate PFI
For information on the development process for this protocol, check out sdk-development.
Implementations
Tooling
All projects (including the test vectors in this repo) use hermit to manage tooling like node, gradle, etc. Hermit version pins and automatically downloads and installs tooling for a repo, including compiler toolchains, utilities, etc. See this page to set up Hermit on your machine - make sure to download the open source build.
Test Vectors
Implementations are run against a common set of test vectors. For more information about how test vectors are used, check out the Test Vectors section of the sdk-development
readme.
Example Implementations
Features
A hosted set of the JSON schemas are also availbled on the hosted site.
tbDEX Message
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Validation |
✅ |
✅ |
✅ |
❌ |
Signing |
✅ |
✅ |
✅ |
❌ |
Verification |
✅ |
✅ |
✅ |
❌ |
Parsing |
✅ |
✅ |
✅ |
❌ |
tbDEX Resource
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Validation |
✅ |
✅ |
❌ |
❌ |
Signing |
✅ |
✅ |
❌ |
❌ |
Verification |
✅ |
✅ |
❌ |
❌ |
Parsing |
✅ |
✅ |
❌ |
❌ |
tbDEX Offering Resource
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Creation |
✅ |
✅ |
❌ |
❌ |
Validation |
✅ |
✅ |
❌ |
❌ |
Signing |
✅ |
✅ |
❌ |
❌ |
Verification |
✅ |
✅ |
❌ |
❌ |
Parsing |
✅ |
✅ |
❌ |
❌ |
tbDEX RFQ Message
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Creation |
✅ |
✅ |
✅ |
❌ |
Validation |
✅ |
✅ |
✅ |
❌ |
Signing |
✅ |
✅ |
✅ |
❌ |
Verification |
✅ |
✅ |
✅ |
❌ |
Parsing |
✅ |
✅ |
✅ |
❌ |
tbDEX Quote Message
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Creation |
✅ |
✅ |
❌ |
❌ |
Validation |
✅ |
✅ |
❌ |
❌ |
Signing |
✅ |
✅ |
❌ |
❌ |
Verification |
✅ |
✅ |
❌ |
❌ |
Parsing |
✅ |
✅ |
❌ |
❌ |
tbDEX Order Message
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Creation |
✅ |
✅ |
✅ |
❌ |
Validation |
✅ |
✅ |
✅ |
❌ |
Signing |
✅ |
✅ |
✅ |
❌ |
Verification |
✅ |
✅ |
✅ |
❌ |
Parsing |
✅ |
✅ |
✅ |
❌ |
tbDEX Order-Status Message
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Creation |
✅ |
✅ |
❌ |
❌ |
Validation |
✅ |
✅ |
❌ |
❌ |
Signing |
✅ |
✅ |
❌ |
❌ |
Verification |
✅ |
✅ |
❌ |
❌ |
Parsing |
✅ |
✅ |
❌ |
❌ |
tbDEX Close Message
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Creation |
✅ |
✅ |
✅ |
❌ |
Validation |
✅ |
✅ |
✅ |
❌ |
Signing |
✅ |
✅ |
✅ |
❌ |
Verification |
✅ |
✅ |
✅ |
❌ |
Parsing |
✅ |
✅ |
✅ |
❌ |
tbDEX Client
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Send Message |
✅ |
✅ |
✅ |
❌ |
Get Exchange |
✅ |
✅ |
✅ |
❌ |
Get Exchanges |
✅ |
✅ |
✅ |
❌ |
Get Offerings |
✅ |
✅ |
✅ |
❌ |
tbDEX Server
Feature |
Typescript |
Kotlin |
Swift |
Rust |
Get Exchange Handler |
✅ |
✅ |
❌ |
❌ |
Get Exchanges Handler |
✅ |
✅ |
❌ |
❌ |
Get Offerings Handler |
✅ |
✅ |
❌ |
❌ |
Submit RFQ Handler |
✅ |
✅ |
❌ |
❌ |
Submit Order Handler |
✅ |
✅ |
❌ |
❌ |
Submit Close Handler |
✅ |
✅ |
❌ |
❌ |
Documentation