Send native assets and tokens
curl --request POST \
--url https://api.afkcrypto.com/v1/send \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "<string>",
"to": "<string>",
"amount": "<string>",
"from": "<string>",
"token": "<string>"
}
'import requests
url = "https://api.afkcrypto.com/v1/send"
payload = {
"chain": "<string>",
"to": "<string>",
"amount": "<string>",
"from": "<string>",
"token": "<string>"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
chain: '<string>',
to: '<string>',
amount: '<string>',
from: '<string>',
token: '<string>'
})
};
fetch('https://api.afkcrypto.com/v1/send', 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.afkcrypto.com/v1/send",
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' => '<string>',
'to' => '<string>',
'amount' => '<string>',
'from' => '<string>',
'token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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.afkcrypto.com/v1/send"
payload := strings.NewReader("{\n \"chain\": \"<string>\",\n \"to\": \"<string>\",\n \"amount\": \"<string>\",\n \"from\": \"<string>\",\n \"token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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.afkcrypto.com/v1/send")
.header("Idempotency-Key", "<idempotency-key>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"<string>\",\n \"to\": \"<string>\",\n \"amount\": \"<string>\",\n \"from\": \"<string>\",\n \"token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.afkcrypto.com/v1/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chain\": \"<string>\",\n \"to\": \"<string>\",\n \"amount\": \"<string>\",\n \"from\": \"<string>\",\n \"token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://basescan.org/tx/0x...", "chainName": "Base" }
एंडपॉइंट्स
एसेट भेजें (EVM + Solana)
EVM और Solana पर POST अनुरोधों से नैटिव एसेट्स और टोकन भेजें.
POST
/
send
Send native assets and tokens
curl --request POST \
--url https://api.afkcrypto.com/v1/send \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "<string>",
"to": "<string>",
"amount": "<string>",
"from": "<string>",
"token": "<string>"
}
'import requests
url = "https://api.afkcrypto.com/v1/send"
payload = {
"chain": "<string>",
"to": "<string>",
"amount": "<string>",
"from": "<string>",
"token": "<string>"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
chain: '<string>',
to: '<string>',
amount: '<string>',
from: '<string>',
token: '<string>'
})
};
fetch('https://api.afkcrypto.com/v1/send', 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.afkcrypto.com/v1/send",
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' => '<string>',
'to' => '<string>',
'amount' => '<string>',
'from' => '<string>',
'token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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.afkcrypto.com/v1/send"
payload := strings.NewReader("{\n \"chain\": \"<string>\",\n \"to\": \"<string>\",\n \"amount\": \"<string>\",\n \"from\": \"<string>\",\n \"token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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.afkcrypto.com/v1/send")
.header("Idempotency-Key", "<idempotency-key>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"<string>\",\n \"to\": \"<string>\",\n \"amount\": \"<string>\",\n \"from\": \"<string>\",\n \"token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.afkcrypto.com/v1/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chain\": \"<string>\",\n \"to\": \"<string>\",\n \"amount\": \"<string>\",\n \"from\": \"<string>\",\n \"token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://basescan.org/tx/0x...", "chainName": "Base" }
Idempotency-Key हेडर आवश्यक है। ERC20 transfer() कॉल करता है; SPL आवश्यकतानुसार ATA बना सकता है।{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://basescan.org/tx/0x...", "chainName": "Base" }
प्राधिकरण
हेडर
Provide a unique Idempotency-Key per user to ensure single submission.
बॉडी
application/json
Chain slug (e.g., base, base-sepolia, solana-devnet).
Recipient wallet address (owner for token transfers).
Asset type to send.
उपलब्ध विकल्प:
native, erc20, spl Amount in base units (wei/lamports/token units).
Optional sender wallet; defaults to user's default wallet for the chain.
Token address (EVM) or mint (Solana) when sending tokens.
प्रतिक्रिया
Submission accepted
AFK transaction id for the submitted action.
Submission status.
उपलब्ध विकल्प:
SUBMITTED On-chain transaction hash/signature (may be null at submission time).
Direct link to the transaction on a chain explorer. Null until a hash/signature exists.
Human-readable chain name for display (e.g., Base, Ethereum, Solana).