curl --request GET \
--url https://api.chainrails.io/api/v1/intents/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.chainrails.io/api/v1/intents/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.chainrails.io/api/v1/intents/{id}', 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.chainrails.io/api/v1/intents/{id}",
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.chainrails.io/api/v1/intents/{id}"
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.chainrails.io/api/v1/intents/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainrails.io/api/v1/intents/{id}")
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{
"id": 6,
"client_id": "e1ee3675-cb26-4a76-8206-a84f86e85862",
"sender": "0xdA3ECb2E5362295E2b802669dD47127A61d9Ce54",
"initialAmount": "1000000",
"fees": "10500",
"app_fee_in_usd": "1000",
"total_amount_in_usd": "1010500",
"total_amount_in_asset_token": "1000500",
"fees_in_asset_token": "500",
"app_fee_in_asset_token": "0",
"asset_token_symbol": "USDC",
"asset_token_decimals": 6,
"slippage": "0.5",
"tokenIn": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"tokenOut": "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",
"intent_address": "0x4E60e01263E750eD9D087157e19D2480Fd86A900",
"deposit_token_account": "DX8aM33XqJqZqZqZqJqZqZqZqJqZqZqZqJqZqZqZqJqZ",
"destination_intent_address": "0x5F70e12374E750fE0E087158f29E3591Ge97B011",
"source_chain": "BASE_TESTNET",
"destination_chain": "ARBITRUM_TESTNET",
"recipient": "0xb79541Be080a59fdcE6C0b43219ba56c725eC65e",
"refund_address": "0xb79541Be080a59fdcE6C0b43219ba56c725eC65e",
"relayer": "",
"coordinator": "0x989f47053F188778575113DcF39dB8960Fc450e2",
"bridger": "0xa1c943058a631D5506eb7d96036eAbF6968e2338",
"bridgeExtraData": "0x00000000000000000000000000000000000000000000000000000000000001f4",
"intent_nonce": 4267684716645197,
"intent_status": "PENDING",
"tx_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"needs_relay": false,
"relayer_claimed": false,
"paymaster_used": false,
"mode": "test",
"expires_at": "2025-12-13T03:31:23.000Z",
"metadata": {
"orderId": "12345"
},
"created_at": "2025-12-13T02:31:23.390Z",
"updated_at": "2025-12-13T02:31:23.390Z"
}{
"statusCode": 401,
"message": "Unauthorized"
}{
"statusCode": 404,
"message": "Intent not found"
}Get intent by ID
Retrieves information about a specific intent using its unique id
curl --request GET \
--url https://api.chainrails.io/api/v1/intents/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.chainrails.io/api/v1/intents/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.chainrails.io/api/v1/intents/{id}', 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.chainrails.io/api/v1/intents/{id}",
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.chainrails.io/api/v1/intents/{id}"
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.chainrails.io/api/v1/intents/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainrails.io/api/v1/intents/{id}")
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{
"id": 6,
"client_id": "e1ee3675-cb26-4a76-8206-a84f86e85862",
"sender": "0xdA3ECb2E5362295E2b802669dD47127A61d9Ce54",
"initialAmount": "1000000",
"fees": "10500",
"app_fee_in_usd": "1000",
"total_amount_in_usd": "1010500",
"total_amount_in_asset_token": "1000500",
"fees_in_asset_token": "500",
"app_fee_in_asset_token": "0",
"asset_token_symbol": "USDC",
"asset_token_decimals": 6,
"slippage": "0.5",
"tokenIn": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"tokenOut": "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",
"intent_address": "0x4E60e01263E750eD9D087157e19D2480Fd86A900",
"deposit_token_account": "DX8aM33XqJqZqZqZqJqZqZqZqJqZqZqZqJqZqZqZqJqZ",
"destination_intent_address": "0x5F70e12374E750fE0E087158f29E3591Ge97B011",
"source_chain": "BASE_TESTNET",
"destination_chain": "ARBITRUM_TESTNET",
"recipient": "0xb79541Be080a59fdcE6C0b43219ba56c725eC65e",
"refund_address": "0xb79541Be080a59fdcE6C0b43219ba56c725eC65e",
"relayer": "",
"coordinator": "0x989f47053F188778575113DcF39dB8960Fc450e2",
"bridger": "0xa1c943058a631D5506eb7d96036eAbF6968e2338",
"bridgeExtraData": "0x00000000000000000000000000000000000000000000000000000000000001f4",
"intent_nonce": 4267684716645197,
"intent_status": "PENDING",
"tx_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"needs_relay": false,
"relayer_claimed": false,
"paymaster_used": false,
"mode": "test",
"expires_at": "2025-12-13T03:31:23.000Z",
"metadata": {
"orderId": "12345"
},
"created_at": "2025-12-13T02:31:23.390Z",
"updated_at": "2025-12-13T02:31:23.390Z"
}{
"statusCode": 401,
"message": "Unauthorized"
}{
"statusCode": 404,
"message": "Intent not found"
}Authorizations
Enter your Chainrails API key as a Bearer token
Path Parameters
Unique id of the intent
6
Response
Intent details retrieved successfully
6
"e1ee3675-cb26-4a76-8206-a84f86e85862"
"0xdA3ECb2E5362295E2b802669dD47127A61d9Ce54"
"1000000"
"10500"
"1000"
"1010500"
"1000500"
"500"
"0"
"USDC"
6
"0.5"
"0x036CbD53842c5426634e7929541eC2318f3dCF7e"
"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d"
Solana: intent PDA — show to users for QR/Send; transfer tokenIn here (wallet derives deposit ATA). EVM/Starknet: contract address.
"0x4E60e01263E750eD9D087157e19D2480Fd86A900"
Solana only: ATA(mint, intent PDA). Indexer and recovery only — do not use for QR/Send; fund via intent_address instead.
"DX8aM33XqJqZqZqZqJqZqZqZqJqZqZqZqJqZqZqZqJqZ"
"0x5F70e12374E750fE0E087158f29E3591Ge97B011"
"BASE_TESTNET"
"ARBITRUM_TESTNET"
"0xb79541Be080a59fdcE6C0b43219ba56c725eC65e"
"0xb79541Be080a59fdcE6C0b43219ba56c725eC65e"
""
"0x989f47053F188778575113DcF39dB8960Fc450e2"
"0xa1c943058a631D5506eb7d96036eAbF6968e2338"
"0x00000000000000000000000000000000000000000000000000000000000001f4"
4267684716645197
PENDING, FUNDED, INITIATED, COMPLETED, EXPIRED "PENDING"
"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
false
false
false
test, live "test"
"2025-12-13T03:31:23.000Z"
{ "orderId": "12345" }
"2025-12-13T02:31:23.390Z"
"2025-12-13T02:31:23.390Z"
Was this page helpful?

