For the complete documentation index, see llms.txt. This page is also available as Markdown.

Runes

Get the unsigned PSBT for exchange

post
/brc20swap/get_swap_psbt2
Body
send_coin_typestringRequired
send_tickstringRequired
send_amountstringRequired
receive_coin_typestringRequired
receive_tickstringRequired
receive_amountstringRequired
addressstringRequired
slipperintegerRequired
fee_rateintegerRequired
user_public_keystringRequired
chlstringRequired
methodstringOptional

Non-cross-pool swap, cross-pool pools_swap, just pass 'pools_swap'

tokenstringRequired
btc_addressstringRequired
Responses
200Success
application/json
codeintegerRequired
msgstringRequired
req_idstringRequired
post/brc20swap/get_swap_psbt2
POST /brc20swap/get_swap_psbt2 HTTP/1.1
Host: api-testnet4.dotswap.app
Content-Type: application/json
Accept: */*
Content-Length: 478

{
  "receive_amount": "9074",
  "receive_coin_type": "runes",
  "receive_tick": "USDC•STARKNET•TEST",
  "send_amount": "100000",
  "send_coin_type": "btc",
  "send_tick": "BTC",
  "slipper": 9,
  "fee_rate": 2,
  "token": "ee1fbac24400000:0",
  "user_public_key": "02d3ac7452920b1cc4653516dd4f4381a2df0a8c0aac6e3446e633a73ea63eee81:02d3ac7452920b1cc4653516dd4f4381a2df0a8c0aac6e3446e633a73ea63eee81",
  "address": "tb1qge80xavle7c7k0tk7vceaavwcgpsr3jchl0w3e",
  "btc_address": "tb1qge80xavle7c7k0tk7vceaavwcgpsr3jchl0w3e"
}
{
  "code": 0,
  "msg": "",
  "data": {
    "order_id": "swap_1072414914196275200",
    "psbt": "cHNidP8BAP3kAQIAAAAGY7oaL8gccUMryZKGtrngwmB/X560uaP4UbuD75PQxlMBAAAAAP/////8IMVNQszZOrx8TR8VyYjZQLY11iIi4jAka6zAI59z7wUAAAAA//////wgxU1CzNk6vHxNHxXJiNlAtjXWIiLiMCRrrMAjn3PvAgAAAAD//////CDFTULM2Tq8fE0fFcmI2UC2NdYiIuIwJGuswCOfc+8BAAAAAP/////8IMVNQszZOrx8TR8VyYjZQLY11iIi4jAka6zAI59z7wQAAAAA//////wgxU1CzNk6vHxNHxXJiNlAtjXWIiLiMCRrrMAjn3PvAwAAAAD/////B0oBAAAAAAAAFgAUAYlgdU80lDqo/6jMzcVuGodfoSdKAQAAAAAAABYAFAGJYHVPNJQ6qP+ozM3FbhqHX6EnSgEAAAAAAAAWABQBiWB1TzSUOqj/qMzNxW4ah1+hJ0oBAAAAAAAAFgAURk7zdZ/Pses9dvMxnvWOwgMBxlgAAAAAAAAAABVqXRIAspoEDfJGAwAAtAIBAAC0AgLIiwEAAAAAACJRIAYWGj9nocZ7GjlVDA5sFWhS8i6cm/xnqpUQEKJ83DJKRWw3AAAAAAAWABRGTvN1n8+x6z128zGe9Y7CAwHGWAAAAAAAAQEf0Ps4AAAAAAAWABRGTvN1n8+x6z128zGe9Y7CAwHGWAEDBAEAAAAAAQEfSgEAAAAAAAAWABQBiWB1TzSUOqj/qMzNxW4ah1+hJwEDBAEAAAAAAQEfSgEAAAAAAAAWABQBiWB1TzSUOqj/qMzNxW4ah1+hJwEDBAEAAAAAAQEfSgEAAAAAAAAWABQBiWB1TzSUOqj/qMzNxW4ah1+hJwEDBAEAAAAAAQEfSgEAAAAAAAAWABQBiWB1TzSUOqj/qMzNxW4ah1+hJwEDBAEAAAAAAQEfSgEAAAAAAAAWABQBiWB1TzSUOqj/qMzNxW4ah1+hJwEDBAEAAAAAAAAAAAAAAA==",
    "check_sign_only": false
  },
  "req_id": "1887761713347338240"
}

Important Notes:

  1. After obtaining the unsigned PSBT, the user must sign it within 30 seconds.

  2. Use the same address for both btc_address and address.

  3. For user_public_key, provide the parameter as public_key:public_key for a wallet with one address, or btc_public_key:ordi_public_key for a wallet with two addresses.

  4. The token must be retrieved from the /swap-info endpoint and can only be used once.

Send the signed PSBT for exchange

post
/brc20swap/send_swap_psbt
Body
order_idstringRequired
psbtstringRequired
Responses
200Success
application/json
codeintegerRequired
msgstringRequired
post/brc20swap/send_swap_psbt
POST /brc20swap/send_swap_psbt HTTP/1.1
Host: api-testnet4.dotswap.app
Content-Type: application/json
Accept: */*
Content-Length: 1763

{
  "order_id": "swap_1072414914196275200",
  "psbt": "70736274ff0100fde401020000000663ba1a2fc81c71432bc99286b6b9e0c2607f5f9eb4b9a3f851bb83ef93d0c6530100000000fffffffffc20c54d42ccd93abc7c4d1f15c988d940b635d62222e230246bacc0239f73ef0500000000fffffffffc20c54d42ccd93abc7c4d1f15c988d940b635d62222e230246bacc0239f73ef0200000000fffffffffc20c54d42ccd93abc7c4d1f15c988d940b635d62222e230246bacc0239f73ef0100000000fffffffffc20c54d42ccd93abc7c4d1f15c988d940b635d62222e230246bacc0239f73ef0400000000fffffffffc20c54d42ccd93abc7c4d1f15c988d940b635d62222e230246bacc0239f73ef0300000000ffffffff074a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa1274a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa1274a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa1274a01000000000000160014464ef3759fcfb1eb3d76f3319ef58ec20301c6580000000000000000156a5d1200b29a040df246030000b402010000b40202c88b01000000000022512006161a3f67a1c67b1a39550c0e6c156852f22e9c9bfc67aa951010a27cdc324a456c370000000000160014464ef3759fcfb1eb3d76f3319ef58ec20301c658000000000001011fd0fb380000000000160014464ef3759fcfb1eb3d76f3319ef58ec20301c65801086b0247304402200fad011f732edb4c2cf77c079e3603adfe0ca9376a47475c5f348b5f3bee4dce02201506df6edce6a06096b8d9a120993a6be987b16216543ae00d98af03f9b8278f012102d3ac7452920b1cc4653516dd4f4381a2df0a8c0aac6e3446e633a73ea63eee810001011f4a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa127010304010000000001011f4a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa127010304010000000001011f4a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa127010304010000000001011f4a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa127010304010000000001011f4a01000000000000160014018960754f34943aa8ffa8cccdc56e1a875fa127010304010000000000000000000000"
}
{
  "code": 0,
  "msg": "",
  "data": {
    "tx_id": "045c00db3b398896756077f344de8893861788e26b6c3ee6e650e21eb2569524"
  },
  "req_id": "1887761723174592512"
}

After sending the signed PSBT, a successful response indicates that the swap was successful.

Extending Signing Duration

If you are using a hardware wallet, the signing process might take longer. To help us identify it being a hardware wallet, you can add the following header to the API requests:

For example:

Last updated