Simulate collateral funding
curl --request POST \
--url https://api-dev.rain.xyz/v1/simulate/collateral/fund \
--header 'Api-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"contractId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "rusd",
"amount": 1
}
'import requests
url = "https://api-dev.rain.xyz/v1/simulate/collateral/fund"
payload = {
"contractId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "rusd",
"amount": 1
}
headers = {
"Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contractId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
currency: 'rusd',
amount: 1
})
};
fetch('https://api-dev.rain.xyz/v1/simulate/collateral/fund', 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-dev.rain.xyz/v1/simulate/collateral/fund",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contractId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'currency' => 'rusd',
'amount' => 1
]),
CURLOPT_HTTPHEADER => [
"Api-Key: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-dev.rain.xyz/v1/simulate/collateral/fund"
payload := strings.NewReader("{\n \"contractId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"rusd\",\n \"amount\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-dev.rain.xyz/v1/simulate/collateral/fund")
.header("Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"contractId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"rusd\",\n \"amount\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.rain.xyz/v1/simulate/collateral/fund")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contractId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"rusd\",\n \"amount\": 1\n}"
response = http.request(request)
puts response.read_body{
"transactionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Simulations
Simulate collateral funding
Triggers a collateral deposit to a smart contract, exactly as if a real on-chain transfer had occurred. Use this to test your collateral webhook handling and balance updates without executing actual blockchain transactions.
Sandbox only. This endpoint returns 404 Not Found in production environments.
POST
/
simulate
/
collateral
/
fund
Simulate collateral funding
curl --request POST \
--url https://api-dev.rain.xyz/v1/simulate/collateral/fund \
--header 'Api-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"contractId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "rusd",
"amount": 1
}
'import requests
url = "https://api-dev.rain.xyz/v1/simulate/collateral/fund"
payload = {
"contractId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"currency": "rusd",
"amount": 1
}
headers = {
"Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contractId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
currency: 'rusd',
amount: 1
})
};
fetch('https://api-dev.rain.xyz/v1/simulate/collateral/fund', 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-dev.rain.xyz/v1/simulate/collateral/fund",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contractId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'currency' => 'rusd',
'amount' => 1
]),
CURLOPT_HTTPHEADER => [
"Api-Key: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-dev.rain.xyz/v1/simulate/collateral/fund"
payload := strings.NewReader("{\n \"contractId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"rusd\",\n \"amount\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-dev.rain.xyz/v1/simulate/collateral/fund")
.header("Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"contractId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"rusd\",\n \"amount\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.rain.xyz/v1/simulate/collateral/fund")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contractId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"currency\": \"rusd\",\n \"amount\": 1\n}"
response = http.request(request)
puts response.read_body{
"transactionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Body
application/json
Collateral funding simulation request
The collateral contract ID to fund. Must belong to your tenant or be an operator-owned contract for your tenant.
The currency to simulate. Currently only rusd is supported.
Available options:
rusd The amount in cents (USD minor units). For example, 10000 represents $100.00.
Required range:
x >= 0Response
Successful operation
A correlation ID for the simulation request.