Transfer Token
curl --request POST \
--url https://testnet.walletkit.com/tokens/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "<string>",
"token": "<string>",
"recipient": "<string>",
"amount": "<string>",
"developer_secret": "<string>",
"user_pin": "<string>"
}
'import requests
url = "https://testnet.walletkit.com/tokens/transfer"
payload = {
"from": "<string>",
"token": "<string>",
"recipient": "<string>",
"amount": "<string>",
"developer_secret": "<string>",
"user_pin": "<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({
from: '<string>',
token: '<string>',
recipient: '<string>',
amount: '<string>',
developer_secret: '<string>',
user_pin: '<string>'
})
};
fetch('https://testnet.walletkit.com/tokens/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://testnet.walletkit.com/tokens/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([
'from' => '<string>',
'token' => '<string>',
'recipient' => '<string>',
'amount' => '<string>',
'developer_secret' => '<string>',
'user_pin' => '<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://testnet.walletkit.com/tokens/transfer"
payload := strings.NewReader("{\n \"from\": \"<string>\",\n \"token\": \"<string>\",\n \"recipient\": \"<string>\",\n \"amount\": \"<string>\",\n \"developer_secret\": \"<string>\",\n \"user_pin\": \"<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://testnet.walletkit.com/tokens/transfer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"<string>\",\n \"token\": \"<string>\",\n \"recipient\": \"<string>\",\n \"amount\": \"<string>\",\n \"developer_secret\": \"<string>\",\n \"user_pin\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://testnet.walletkit.com/tokens/transfer")
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 \"from\": \"<string>\",\n \"token\": \"<string>\",\n \"recipient\": \"<string>\",\n \"amount\": \"<string>\",\n \"developer_secret\": \"<string>\",\n \"user_pin\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"transaction_id": "<string>",
"status": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Tokens
Transfer Token
Transfers the specified amount of tokens from from to recipient. The from address can only be the ones created in the project.
Transfer Token
curl --request POST \
--url https://testnet.walletkit.com/tokens/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "<string>",
"token": "<string>",
"recipient": "<string>",
"amount": "<string>",
"developer_secret": "<string>",
"user_pin": "<string>"
}
'import requests
url = "https://testnet.walletkit.com/tokens/transfer"
payload = {
"from": "<string>",
"token": "<string>",
"recipient": "<string>",
"amount": "<string>",
"developer_secret": "<string>",
"user_pin": "<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({
from: '<string>',
token: '<string>',
recipient: '<string>',
amount: '<string>',
developer_secret: '<string>',
user_pin: '<string>'
})
};
fetch('https://testnet.walletkit.com/tokens/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://testnet.walletkit.com/tokens/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([
'from' => '<string>',
'token' => '<string>',
'recipient' => '<string>',
'amount' => '<string>',
'developer_secret' => '<string>',
'user_pin' => '<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://testnet.walletkit.com/tokens/transfer"
payload := strings.NewReader("{\n \"from\": \"<string>\",\n \"token\": \"<string>\",\n \"recipient\": \"<string>\",\n \"amount\": \"<string>\",\n \"developer_secret\": \"<string>\",\n \"user_pin\": \"<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://testnet.walletkit.com/tokens/transfer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"<string>\",\n \"token\": \"<string>\",\n \"recipient\": \"<string>\",\n \"amount\": \"<string>\",\n \"developer_secret\": \"<string>\",\n \"user_pin\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://testnet.walletkit.com/tokens/transfer")
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 \"from\": \"<string>\",\n \"token\": \"<string>\",\n \"recipient\": \"<string>\",\n \"amount\": \"<string>\",\n \"developer_secret\": \"<string>\",\n \"user_pin\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"transaction_id": "<string>",
"status": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Headers
string
required
Your WalletKit Project ID can be found on the API Keys page in the WalletKit Dashboard.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Available options:
Ethereum, Polygon, Base, Avalanche, Polkadot, Vara from address of the transfer
token contract address or symbol in case of the gas token to be transferred.
recipient of the transfer
amount to be transferred.
On testnet, the developer_secret is always "testnet-secret". On mainnet, the developer_secret is set by the developer during account activation.
A 6-digit numeric pin that is only known to the user, set during wallet creation. This pin is required to sign transactions from this wallet.
⌘I