Generate Address for Sub-Wallet
curl --request POST \
--url https://api.openxswitch.com/v1/sub-wallet/address \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subWalletId": "<string>",
"coin": "<string>",
"chain": "<string>"
}
'import requests
url = "https://api.openxswitch.com/v1/sub-wallet/address"
payload = {
"subWalletId": "<string>",
"coin": "<string>",
"chain": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({subWalletId: '<string>', coin: '<string>', chain: '<string>'})
};
fetch('https://api.openxswitch.com/v1/sub-wallet/address', 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.openxswitch.com/v1/sub-wallet/address",
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([
'subWalletId' => '<string>',
'coin' => '<string>',
'chain' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.openxswitch.com/v1/sub-wallet/address"
payload := strings.NewReader("{\n \"subWalletId\": \"<string>\",\n \"coin\": \"<string>\",\n \"chain\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.openxswitch.com/v1/sub-wallet/address")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subWalletId\": \"<string>\",\n \"coin\": \"<string>\",\n \"chain\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openxswitch.com/v1/sub-wallet/address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subWalletId\": \"<string>\",\n \"coin\": \"<string>\",\n \"chain\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "34303043....",
"coin": "Bitcoin",
"chain": "Ethereum",
"network": "Mainnet",
"address": "0x123456789abcdef",
"workspaceId": "60f7d4b5b4d5c909a85b8d7e",
"createdAt": null,
"walletId": "63e1b8c2f18e310bb11f8a9c",
"tag": "Memo123"
}
}{
"statusCode": 400,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}{
"statusCode": 404,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "Cannot GET /v1/..."
}{
"statusCode": 422,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": [
"param is required"
]
}{
"statusCode": 500,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}Sub Wallet Endpoints
Generate Address for Sub-Wallet
Generate a new wallet address or retrieve an existing one for the specified sub-wallet.
Addresses can only be generated for recharge coins.POST
/
v1
/
sub-wallet
/
address
Generate Address for Sub-Wallet
curl --request POST \
--url https://api.openxswitch.com/v1/sub-wallet/address \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subWalletId": "<string>",
"coin": "<string>",
"chain": "<string>"
}
'import requests
url = "https://api.openxswitch.com/v1/sub-wallet/address"
payload = {
"subWalletId": "<string>",
"coin": "<string>",
"chain": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({subWalletId: '<string>', coin: '<string>', chain: '<string>'})
};
fetch('https://api.openxswitch.com/v1/sub-wallet/address', 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.openxswitch.com/v1/sub-wallet/address",
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([
'subWalletId' => '<string>',
'coin' => '<string>',
'chain' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.openxswitch.com/v1/sub-wallet/address"
payload := strings.NewReader("{\n \"subWalletId\": \"<string>\",\n \"coin\": \"<string>\",\n \"chain\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.openxswitch.com/v1/sub-wallet/address")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subWalletId\": \"<string>\",\n \"coin\": \"<string>\",\n \"chain\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openxswitch.com/v1/sub-wallet/address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subWalletId\": \"<string>\",\n \"coin\": \"<string>\",\n \"chain\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "34303043....",
"coin": "Bitcoin",
"chain": "Ethereum",
"network": "Mainnet",
"address": "0x123456789abcdef",
"workspaceId": "60f7d4b5b4d5c909a85b8d7e",
"createdAt": null,
"walletId": "63e1b8c2f18e310bb11f8a9c",
"tag": "Memo123"
}
}{
"statusCode": 400,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}{
"statusCode": 404,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "Cannot GET /v1/..."
}{
"statusCode": 422,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": [
"param is required"
]
}{
"statusCode": 500,
"path": "/v1/...",
"timestamp": "2025-03-13T12:34:56.789Z",
"message": "......"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The ID of the sub-wallet for which the address is being generated
The token name. Only rechargeable currencies are accepted.
Refer to the Get Recharge Currencies endpoint for the list of supported currencies.
The blockchain network on which the address is being generated
⌘I
.png?fit=max&auto=format&n=ML35RDblT1Ol-zJb&q=85&s=062e79ad9c4540929eec204aff020178)
.png?fit=max&auto=format&n=ML35RDblT1Ol-zJb&q=85&s=f6328956931c9664a2a070c2edb6e9b3)