Python (SDK)
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.token.token_transfer(to="0x0000000000000000000000000000000000000000", token="USDC", amount=0.1, chain=models.TokenTransferRequestChain.BASE, sender="0xA06a2D62D71BeAf93FA0a684A92c28729297eC81", estimate_gas=True)
# Handle response
print(res)import { CompassApiSDK } from "@compass-labs/api-sdk";
const compassApiSDK = new CompassApiSDK({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await compassApiSDK.token.tokenTransfer({
to: "0x0000000000000000000000000000000000000000",
token: "USDC",
amount: 0.1,
chain: "base",
sender: "0xA06a2D62D71BeAf93FA0a684A92c28729297eC81",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/token/transfer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"to": "0x0000000000000000000000000000000000000000",
"sender": "0xA06a2D62D71BeAf93FA0a684A92c28729297eC81",
"token": "USDC",
"amount": 0.1
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
to: '0x0000000000000000000000000000000000000000',
sender: '0xA06a2D62D71BeAf93FA0a684A92c28729297eC81',
token: 'USDC',
amount: 0.1
})
};
fetch('https://api.compasslabs.ai/v1/token/transfer', 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.compasslabs.ai/v1/token/transfer",
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([
'chain' => 'base',
'to' => '0x0000000000000000000000000000000000000000',
'sender' => '0xA06a2D62D71BeAf93FA0a684A92c28729297eC81',
'token' => 'USDC',
'amount' => 0.1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.compasslabs.ai/v1/token/transfer"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"to\": \"0x0000000000000000000000000000000000000000\",\n \"sender\": \"0xA06a2D62D71BeAf93FA0a684A92c28729297eC81\",\n \"token\": \"USDC\",\n \"amount\": 0.1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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.compasslabs.ai/v1/token/transfer")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"to\": \"0x0000000000000000000000000000000000000000\",\n \"sender\": \"0xA06a2D62D71BeAf93FA0a684A92c28729297eC81\",\n \"token\": \"USDC\",\n \"amount\": 0.1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/token/transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chain\": \"base\",\n \"to\": \"0x0000000000000000000000000000000000000000\",\n \"sender\": \"0xA06a2D62D71BeAf93FA0a684A92c28729297eC81\",\n \"token\": \"USDC\",\n \"amount\": 0.1\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Token
Transfer Tokens
Sends native ETH or ERC20 tokens from the sender’s address to another address.
POST
/
v1
/
token
/
transfer
Python (SDK)
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.token.token_transfer(to="0x0000000000000000000000000000000000000000", token="USDC", amount=0.1, chain=models.TokenTransferRequestChain.BASE, sender="0xA06a2D62D71BeAf93FA0a684A92c28729297eC81", estimate_gas=True)
# Handle response
print(res)import { CompassApiSDK } from "@compass-labs/api-sdk";
const compassApiSDK = new CompassApiSDK({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await compassApiSDK.token.tokenTransfer({
to: "0x0000000000000000000000000000000000000000",
token: "USDC",
amount: 0.1,
chain: "base",
sender: "0xA06a2D62D71BeAf93FA0a684A92c28729297eC81",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/token/transfer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"to": "0x0000000000000000000000000000000000000000",
"sender": "0xA06a2D62D71BeAf93FA0a684A92c28729297eC81",
"token": "USDC",
"amount": 0.1
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
to: '0x0000000000000000000000000000000000000000',
sender: '0xA06a2D62D71BeAf93FA0a684A92c28729297eC81',
token: 'USDC',
amount: 0.1
})
};
fetch('https://api.compasslabs.ai/v1/token/transfer', 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.compasslabs.ai/v1/token/transfer",
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([
'chain' => 'base',
'to' => '0x0000000000000000000000000000000000000000',
'sender' => '0xA06a2D62D71BeAf93FA0a684A92c28729297eC81',
'token' => 'USDC',
'amount' => 0.1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.compasslabs.ai/v1/token/transfer"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"to\": \"0x0000000000000000000000000000000000000000\",\n \"sender\": \"0xA06a2D62D71BeAf93FA0a684A92c28729297eC81\",\n \"token\": \"USDC\",\n \"amount\": 0.1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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.compasslabs.ai/v1/token/transfer")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"to\": \"0x0000000000000000000000000000000000000000\",\n \"sender\": \"0xA06a2D62D71BeAf93FA0a684A92c28729297eC81\",\n \"token\": \"USDC\",\n \"amount\": 0.1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/token/transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chain\": \"base\",\n \"to\": \"0x0000000000000000000000000000000000000000\",\n \"sender\": \"0xA06a2D62D71BeAf93FA0a684A92c28729297eC81\",\n \"token\": \"USDC\",\n \"amount\": 0.1\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
application/json
Request model for transferring ETH or ERC20 tokens.
The recipient of the tokens.
Example:
"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc44"
The symbol or address of the token to transfer.
Examples:
"USDC"
"WETH"
"0xA0b86a33E6441ccF30EE5DdEF1E9b652C91ac1c8"
Amount of token to transfer
Required range:
x > 0Example:
1.5
Available options:
arbitrum, base, ethereum Example:
"base"
The address of the transaction sender.
Example:
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
Allowed value:
"TOKEN_TRANSFER"Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.
Response
Successful Response
The unsigned transaction data. User must sign and broadcast to network.
- UnsignedTransaction
- UserOperationResponse
Show child attributes
Show child attributes
Example:
{
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
Was this page helpful?
⌘I