curl --request GET \
--url https://api.satora.io/api/swap/{id}/collab-refund-evm/paramsimport requests
url = "https://api.satora.io/api/swap/{id}/collab-refund-evm/params"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.satora.io/api/swap/{id}/collab-refund-evm/params', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.satora.io/api/swap/{id}/collab-refund-evm/params",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.satora.io/api/swap/{id}/collab-refund-evm/params"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.satora.io/api/swap/{id}/collab-refund-evm/params")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.satora.io/api/swap/{id}/collab-refund-evm/params")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"amount": "<string>",
"calls_hash": "<string>",
"chain_id": 1,
"claim_address": "<string>",
"coordinator_address": "<string>",
"coordinator_version": 1,
"min_amount_out": "<string>",
"preimage_hash": "<string>",
"server_signer_address": "<string>",
"sweep_token": "<string>",
"timelock": 1,
"token": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Get EIP-712 parameters for collaborative EVM HTLC refund.
Returns the addresses, amounts, and struct fields the client needs to
construct and sign the CollabRefund EIP-712 typed data. The client signs
this, then POSTs the signature to the collab-refund-evm endpoint.
The refund always sweeps the BTC-pegged HTLC token (tBTC/WBTC) to the
depositor: sweepToken = tBTC/WBTC, minAmountOut = 0.
curl --request GET \
--url https://api.satora.io/api/swap/{id}/collab-refund-evm/paramsimport requests
url = "https://api.satora.io/api/swap/{id}/collab-refund-evm/params"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.satora.io/api/swap/{id}/collab-refund-evm/params', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.satora.io/api/swap/{id}/collab-refund-evm/params",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.satora.io/api/swap/{id}/collab-refund-evm/params"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.satora.io/api/swap/{id}/collab-refund-evm/params")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.satora.io/api/swap/{id}/collab-refund-evm/params")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"amount": "<string>",
"calls_hash": "<string>",
"chain_id": 1,
"claim_address": "<string>",
"coordinator_address": "<string>",
"coordinator_version": 1,
"min_amount_out": "<string>",
"preimage_hash": "<string>",
"server_signer_address": "<string>",
"sweep_token": "<string>",
"timelock": 1,
"token": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Path Parameters
Swap ID
Response
EIP-712 CollabRefund parameters
EIP-712 parameters the client needs to sign for collaborative refund.
WBTC amount locked in the HTLC (decimal string)
keccak256(abi.encode(calls)) for the exact calls array the depositor signs over.
EVM chain ID
x >= 0Claim address (server's EVM address)
HTLCCoordinator contract address (EIP-712 verifyingContract)
EIP-712 domain version of the coordinator at coordinator_address —
the CollabRefund signature must use it or recovery fails on-chain.
x >= 0Minimum output amount for the sweep (always 0).
This is the minAmountOut field in the EIP-712 struct.
Preimage hash (0x-prefixed, 32-byte hex)
Server's signer EOA address (the caller field in the EIP-712 struct)
Token the depositor receives after refund (always the BTC-pegged HTLC token, tBTC/WBTC).
This is the sweepToken field in the EIP-712 struct.
HTLC timelock (unix timestamp)
x >= 0WBTC token address