📕API DEVELOPER GUIDE

Overall Schema

We provide four key endpoints:


1. /tokens:

  • Description: This endpoint lists xBlock tokens, detailing their respective chains for constructing your token selection list/dropdown.

  • Parameters: None required.

  • Response: A comprehensive list of tokens with corresponding details.


2. /quote:

  • Description: Allows the user to select any combination of tokens, the amount, and for private transactions, this endpoint is employed to produce a quote for user approval.

  • Parameters: amount, from, to, anonymous.

  • Response: Reveals the amount the user will receive, including the minimum and maximum token amounts permissible for exchange.


3. /exchange:

  • Description: Upon quote acceptance, this endpoint facilitates the exchange.

  • Parameters: Quote parameters, plus additional fields such as receiverTag (tag/memo where necessary), fixed vs. variable, IP, userAgent, and timezone.

Note: User Agent information is retained only for security checks against potential criminal activity and is not automatically forwarded to exchanges.

Response: The responses contain crucial information for the user:

  • "houdiniId": An order's unique identifier, crucial for status checks and identification if support is required.

  • "created": A timestamp of the order's inception.

  • "senderAddress": The user must send their funds into this address.

  • SenderAddress is a one-time use address generated by the exchange partner for processing the transaction.

  • You may send senderAddress to a wallet connect, although not required. The user can simply send funds directly from their wallet to the senderAddress.

  • "receiverAddress": The user-specified address for receiving funds.

  • "senderTag": The user must specify the senderTag when sending their transaction if the chain requires it. SenderTags are a one-time use tag/memo generated by the exchange partner for processing the transaction.

  • "receiverTag": The tag/memo that the user designated for receiving.

  • "expires": Indicates the time frame for users to send their funds. The transaction will still process if a user sends in funds after the time has expired, although if more than ~3 hours, the transaction may not be picked up by the exchange automatically. Support assistance would be required in this case.

  • "status": (detailed below)

  • "inAmount": The necessary token ("inSymbol") amount the user should send.

Note: for variable transactions, if the user sends in the wrong amount the exchange will still process at the same market rate.

  • “outAmount": the anticipated received token ("outSymbol") amount, assuming no major market volatility.


4. /status:

  • Description: Once an exchange has been selected, you may check the status using this endpoint. The response will be the same exchange details, although will include an updated status, along with the transaction hash once the transaction reaches Status 4.

  • Parameters: "houdiniId"

  • Response: Offers updated exchange details, inclusive of a refreshed status and, once Status 4 is achieved, the transaction hash.

Status Guide 🚦

0: Pending - user funds not received by the deposit address ("senderAddress")

1: Order Received – the exchange acknowledges user’s funds have arrived in the deposit address ("senderAddress"), processing in progress.

2: Anonymizing – transaction advancing to the next phase.

3: Swapping – Transaction progressing to its final stage.

4: Order Complete – funds should have reached the user. At this point, the transaction hash "hashUrl" is a filled response.

8: Contact Support - This could stem from a system error or if the transaction has been flagged for criminal activity and requires AML ( t.me/HoudiniSwapSupport_Bot).


OpenAPI Usage Guide 📘

1. Trying Out an Endpoint

  • Authorize: Try out your API by selecting the "Authorize" option. For the "Value" parameter, input your authorization header: ApiKey:ApiSecret.

  • Input Parameters: For endpoints that require input, like /quote, /exchange, and /status, you'll see input fields where you can enter sample data.

  • Send a Request: After entering the necessary details, select "Try it out". This sends a server request, the response to which is then showcased on the page.

2. Understanding Responses

  • Response Codes: Familiarize yourself with HTTP status codes, e.g., 200 denotes success while 404 indicates not found.

  • Response Body: Beneath the status code, the response body displays a preview of the data expected from valid server requests.

3. Data Transfer Object (DTO) Schemas

  • Understanding Schemas: The interface's "Schemas" section, located at the bottom, provides a visual

Last updated