curl --request POST \
--url https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"from": {
"symbol": "USDC",
"type": "stablecoin"
},
"to": {
"symbol": "TSLAx",
"type": "xstock",
"amount": "10"
},
"network": "ethereum"
}
'import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft"
payload = {
"from": {
"symbol": "USDC",
"type": "stablecoin"
},
"to": {
"symbol": "TSLAx",
"type": "xstock",
"amount": "10"
},
"network": "ethereum"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<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>',
'API-Sign': '<api-key>',
'API-Nonce': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from: {symbol: 'USDC', type: 'stablecoin'},
to: {symbol: 'TSLAx', type: 'xstock', amount: '10'},
network: 'ethereum'
})
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft', 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.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft",
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([
'from' => [
'symbol' => 'USDC',
'type' => 'stablecoin'
],
'to' => [
'symbol' => 'TSLAx',
'type' => 'xstock',
'amount' => '10'
],
'network' => 'ethereum'
]),
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <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.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft"
payload := strings.NewReader("{\n \"from\": {\n \"symbol\": \"USDC\",\n \"type\": \"stablecoin\"\n },\n \"to\": {\n \"symbol\": \"TSLAx\",\n \"type\": \"xstock\",\n \"amount\": \"10\"\n },\n \"network\": \"ethereum\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<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.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from\": {\n \"symbol\": \"USDC\",\n \"type\": \"stablecoin\"\n },\n \"to\": {\n \"symbol\": \"TSLAx\",\n \"type\": \"xstock\",\n \"amount\": \"10\"\n },\n \"network\": \"ethereum\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from\": {\n \"symbol\": \"USDC\",\n \"type\": \"stablecoin\"\n },\n \"to\": {\n \"symbol\": \"TSLAx\",\n \"type\": \"xstock\",\n \"amount\": \"10\"\n },\n \"network\": \"ethereum\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"from": {
"symbol": "USDC",
"type": "stablecoin",
"amount": "1853.4"
},
"to": {
"symbol": "TSLAx",
"type": "xstock",
"amount": "10"
},
"rate": {
"base": {
"symbol": "TSLAx",
"type": "xstock"
},
"quote": {
"symbol": "USDC",
"type": "stablecoin"
},
"price": "185.34"
}
}
}Get soft quote
Returns a short-lived indicative price for a wallet-funded onchain swap.
A soft quote carries no execution details and cannot be executed or retrieved later; nothing is persisted. Use Create onchain quote to obtain an executable quote.
Set amount on exactly one of from or to; the other side is calculated when the soft quote is priced.
curl --request POST \
--url https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"from": {
"symbol": "USDC",
"type": "stablecoin"
},
"to": {
"symbol": "TSLAx",
"type": "xstock",
"amount": "10"
},
"network": "ethereum"
}
'import requests
url = "https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft"
payload = {
"from": {
"symbol": "USDC",
"type": "stablecoin"
},
"to": {
"symbol": "TSLAx",
"type": "xstock",
"amount": "10"
},
"network": "ethereum"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<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>',
'API-Sign': '<api-key>',
'API-Nonce': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from: {symbol: 'USDC', type: 'stablecoin'},
to: {symbol: 'TSLAx', type: 'xstock', amount: '10'},
network: 'ethereum'
})
};
fetch('https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft', 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.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft",
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([
'from' => [
'symbol' => 'USDC',
'type' => 'stablecoin'
],
'to' => [
'symbol' => 'TSLAx',
'type' => 'xstock',
'amount' => '10'
],
'network' => 'ethereum'
]),
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <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.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft"
payload := strings.NewReader("{\n \"from\": {\n \"symbol\": \"USDC\",\n \"type\": \"stablecoin\"\n },\n \"to\": {\n \"symbol\": \"TSLAx\",\n \"type\": \"xstock\",\n \"amount\": \"10\"\n },\n \"network\": \"ethereum\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<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.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"from\": {\n \"symbol\": \"USDC\",\n \"type\": \"stablecoin\"\n },\n \"to\": {\n \"symbol\": \"TSLAx\",\n \"type\": \"xstock\",\n \"amount\": \"10\"\n },\n \"network\": \"ethereum\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/accounts/{account_id}/onchain-quotes/soft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from\": {\n \"symbol\": \"USDC\",\n \"type\": \"stablecoin\"\n },\n \"to\": {\n \"symbol\": \"TSLAx\",\n \"type\": \"xstock\",\n \"amount\": \"10\"\n },\n \"network\": \"ethereum\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"from": {
"symbol": "USDC",
"type": "stablecoin",
"amount": "1853.4"
},
"to": {
"symbol": "TSLAx",
"type": "xstock",
"amount": "10"
},
"rate": {
"base": {
"symbol": "TSLAx",
"type": "xstock"
},
"quote": {
"symbol": "USDC",
"type": "stablecoin"
},
"price": "185.34"
}
}
}Authorizations
Your public API key. Identifies the partner making the request.
HMAC signature over the request, computed with your private key.
Monotonically increasing nonce included in the request signature.
Path Parameters
Globally unique public identifier for an account.
14 - 42Body
Source side of a soft quote request. Set amount here when the source amount is fixed.
Show child attributes
Show child attributes
Destination side of a soft quote request. Set amount here when the destination amount is fixed.
Show child attributes
Show child attributes
Network for which the indicative price is quoted.
ethereum Response
A short-lived indicative price for a wallet-funded onchain swap. It carries no execution details and cannot be executed.
Show child attributes
Show child attributes