Fund a test balance
Simulate a crypto deposit into an account’s provisioned deposit address.
Credits the ledger immediately and returns a COMPLETED CRYPTO_PAYIN
transaction — no real on-chain transfer is required. Use it to fund test
accounts and exercise the full pay-in → balance → pay-out loop.
Sandbox only. In production this endpoint returns 404 not_found as if
it did not exist. Your organization must be verification-approved, and the
asset must already be activated on the account (so a deposit address exists
on chainName).
curl --request POST \
--url https://api.nxos.io/v1/transactions/faucet \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"asset": "USDC",
"amount": "10000.000000",
"chainName": "ETHEREUM_SEPOLIA"
}
'import requests
url = "https://api.nxos.io/v1/transactions/faucet"
payload = {
"accountId": "acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"asset": "USDC",
"amount": "10000.000000",
"chainName": "ETHEREUM_SEPOLIA"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountId: 'acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
asset: 'USDC',
amount: '10000.000000',
chainName: 'ETHEREUM_SEPOLIA'
})
};
fetch('https://api.nxos.io/v1/transactions/faucet', 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.nxos.io/v1/transactions/faucet",
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([
'accountId' => 'acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
'asset' => 'USDC',
'amount' => '10000.000000',
'chainName' => 'ETHEREUM_SEPOLIA'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.nxos.io/v1/transactions/faucet"
payload := strings.NewReader("{\n \"accountId\": \"acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"asset\": \"USDC\",\n \"amount\": \"10000.000000\",\n \"chainName\": \"ETHEREUM_SEPOLIA\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.nxos.io/v1/transactions/faucet")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"asset\": \"USDC\",\n \"amount\": \"10000.000000\",\n \"chainName\": \"ETHEREUM_SEPOLIA\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nxos.io/v1/transactions/faucet")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"asset\": \"USDC\",\n \"amount\": \"10000.000000\",\n \"chainName\": \"ETHEREUM_SEPOLIA\"\n}"
response = http.request(request)
puts response.read_body{
"object": "transaction",
"transactionId": "txn_c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "CRYPTO_PAYIN",
"status": "COMPLETED",
"accountId": "acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"amount": "10000.000000",
"asset": "USDC",
"chainName": "ETHEREUM_SEPOLIA",
"createdAt": "2025-03-15T14:32:00.000Z"
}{
"error": {
"code": "invalid_request",
"message": "The request body is malformed or missing required fields.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "missing_api_key",
"message": "No Authorization header provided.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "forbidden",
"message": "Your organization is not enabled for this action.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded: 1000 requests per minute. Retry in 23 seconds.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected server error occurred.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}Headers
Bearer token. Format: Bearer <api_key>
Unique key per logical operation. UUID v4 recommended. Max 255 characters.
Body
Request body for funding a test balance via the sandbox faucet.
Account to credit.
Asset code to deposit (e.g. USDC, USDT).
Deposit amount in major units (e.g. "10000.00").
Chain the account's deposit address lives on. Sandbox chains: ETHEREUM_SEPOLIA, ARBITRUM_SEPOLIA, BASE_SEPOLIA, BSC_TESTNET, SOLANA_DEVNET, TRON_NILE.
Response
The request has succeeded.
A simulated crypto deposit produced by the sandbox faucet.
Object type. Always transaction.
transaction Unique transaction identifier.
Transaction type. Always CRYPTO_PAYIN.
CRYPTO_PAYIN Transaction status. Always COMPLETED — the simulated deposit is credited immediately.
COMPLETED Credited account.
Deposit amount in major units.
Asset code.
Chain the deposit was simulated on.
When the transaction was created.
curl --request POST \
--url https://api.nxos.io/v1/transactions/faucet \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"asset": "USDC",
"amount": "10000.000000",
"chainName": "ETHEREUM_SEPOLIA"
}
'import requests
url = "https://api.nxos.io/v1/transactions/faucet"
payload = {
"accountId": "acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"asset": "USDC",
"amount": "10000.000000",
"chainName": "ETHEREUM_SEPOLIA"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountId: 'acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
asset: 'USDC',
amount: '10000.000000',
chainName: 'ETHEREUM_SEPOLIA'
})
};
fetch('https://api.nxos.io/v1/transactions/faucet', 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.nxos.io/v1/transactions/faucet",
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([
'accountId' => 'acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
'asset' => 'USDC',
'amount' => '10000.000000',
'chainName' => 'ETHEREUM_SEPOLIA'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.nxos.io/v1/transactions/faucet"
payload := strings.NewReader("{\n \"accountId\": \"acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"asset\": \"USDC\",\n \"amount\": \"10000.000000\",\n \"chainName\": \"ETHEREUM_SEPOLIA\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.nxos.io/v1/transactions/faucet")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"asset\": \"USDC\",\n \"amount\": \"10000.000000\",\n \"chainName\": \"ETHEREUM_SEPOLIA\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nxos.io/v1/transactions/faucet")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"asset\": \"USDC\",\n \"amount\": \"10000.000000\",\n \"chainName\": \"ETHEREUM_SEPOLIA\"\n}"
response = http.request(request)
puts response.read_body{
"object": "transaction",
"transactionId": "txn_c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "CRYPTO_PAYIN",
"status": "COMPLETED",
"accountId": "acct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"amount": "10000.000000",
"asset": "USDC",
"chainName": "ETHEREUM_SEPOLIA",
"createdAt": "2025-03-15T14:32:00.000Z"
}{
"error": {
"code": "invalid_request",
"message": "The request body is malformed or missing required fields.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "missing_api_key",
"message": "No Authorization header provided.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "forbidden",
"message": "Your organization is not enabled for this action.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded: 1000 requests per minute. Retry in 23 seconds.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected server error occurred.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}