List CCTP routes
curl --request GET \
--url https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes', 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.portalhq.io/api/v3/clients/me/integrations/cctp/routes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.portalhq.io/api/v3/clients/me/integrations/cctp/routes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.portalhq.io/api/v3/clients/me/integrations/cctp/routes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"chains": [
{
"chainId": "eip155:84532",
"name": "Base Sepolia",
"domain": 6,
"network": "testnet",
"namespace": "eip155",
"usdcAddress": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"canSend": true,
"canReceive": true,
"fastTransfer": true,
"estimatedSeconds": {
"fast": 8,
"standard": 1080
}
},
{
"chainId": "eip155:43113",
"name": "Avalanche Fuji",
"domain": 1,
"network": "testnet",
"namespace": "eip155",
"usdcAddress": "0x5425890298aed601595a70AB815c96711a31Bc65",
"canSend": true,
"canReceive": true,
"fastTransfer": false,
"estimatedSeconds": {
"fast": null,
"standard": 8
}
},
{
"chainId": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"name": "Solana Devnet",
"domain": 5,
"network": "testnet",
"namespace": "solana",
"usdcAddress": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"canSend": true,
"canReceive": true,
"fastTransfer": false,
"estimatedSeconds": {
"fast": null,
"standard": 25
}
}
]
}
}{
"error": "Enable the CCTP integration on the Portal Dashboard to use this endpoint",
"id": "CCTP_NOT_ENABLED"
}{
"error": "<string>"
}CCTP
List CCTP routes
Lists the chains you can move USDC between with CCTP: EVM chains and
Solana. Any listed chain can be the source or the destination, as long as both
are on the same network (mainnet or testnet) and they’re different chains.
GET
/
clients
/
me
/
integrations
/
cctp
/
routes
List CCTP routes
curl --request GET \
--url https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes', 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.portalhq.io/api/v3/clients/me/integrations/cctp/routes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.portalhq.io/api/v3/clients/me/integrations/cctp/routes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.portalhq.io/api/v3/clients/me/integrations/cctp/routes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.portalhq.io/api/v3/clients/me/integrations/cctp/routes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"chains": [
{
"chainId": "eip155:84532",
"name": "Base Sepolia",
"domain": 6,
"network": "testnet",
"namespace": "eip155",
"usdcAddress": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"canSend": true,
"canReceive": true,
"fastTransfer": true,
"estimatedSeconds": {
"fast": 8,
"standard": 1080
}
},
{
"chainId": "eip155:43113",
"name": "Avalanche Fuji",
"domain": 1,
"network": "testnet",
"namespace": "eip155",
"usdcAddress": "0x5425890298aed601595a70AB815c96711a31Bc65",
"canSend": true,
"canReceive": true,
"fastTransfer": false,
"estimatedSeconds": {
"fast": null,
"standard": 8
}
},
{
"chainId": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"name": "Solana Devnet",
"domain": 5,
"network": "testnet",
"namespace": "solana",
"usdcAddress": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"canSend": true,
"canReceive": true,
"fastTransfer": false,
"estimatedSeconds": {
"fast": null,
"standard": 25
}
}
]
}
}{
"error": "Enable the CCTP integration on the Portal Dashboard to use this endpoint",
"id": "CCTP_NOT_ENABLED"
}{
"error": "<string>"
}Was this page helpful?