ARC20

Get the unsigned PSBT for exchange

post
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
post
POST /brc20swap/get_swap_psbt2 HTTP/1.1
Host: test-api-proxy.ddpurse.com
Content-Type: application/json
Accept: */*
Content-Length: 483

{
  "receive_amount": "9074",
  "receive_coin_type": "runes",
  "receive_tick": "SHE•SHE•SHE•SHE•SHE",
  "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. Unlike BRC20, no pre-request is needed.

  5. When swapping BTC for ARC20, the amount of ARC20 to be received plus the ARC20 already in the user's wallet must not be less than 546.

  6. When swapping ARC20 for BTC, the remaining amount of the ARC20 token in the user's wallet after the swap must not be less than 546.

Send the signed PSBT for exchange

post
Body
order_idstringRequired
psbtstringRequired
Responses
200Success
application/json
post
POST /brc20swap/send_swap_psbt HTTP/1.1
Host: test-api-proxy.ddpurse.com
Content-Type: application/json
Accept: */*
Content-Length: 1763

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

Finally, send the signed PSBT. If the response indicates success, the swap is successful.

Last updated

Was this helpful?