Send USDC from the managed wallet
curl --request POST \
--url https://laso.finance/agentWalletTransfer \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"userId": "usr_7aff81763cae58c936aa6de67dd5a95e",
"destinationAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": "5.50"
}
}
'import requests
url = "https://laso.finance/agentWalletTransfer"
payload = { "data": {
"userId": "usr_7aff81763cae58c936aa6de67dd5a95e",
"destinationAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": "5.50"
} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
userId: 'usr_7aff81763cae58c936aa6de67dd5a95e',
destinationAddress: '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
amount: '5.50'
}
})
};
fetch('https://laso.finance/agentWalletTransfer', 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://laso.finance/agentWalletTransfer",
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([
'data' => [
'userId' => 'usr_7aff81763cae58c936aa6de67dd5a95e',
'destinationAddress' => '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
'amount' => '5.50'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://laso.finance/agentWalletTransfer"
payload := strings.NewReader("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\",\n \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"amount\": \"5.50\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://laso.finance/agentWalletTransfer")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\",\n \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"amount\": \"5.50\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/agentWalletTransfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\",\n \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"amount\": \"5.50\"\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {}
}Agent Wallet
Send USDC from the managed wallet
Moves USDC out of the managed wallet to any Solana address. Laso signs on your behalf.
Takes an address, and deliberately not an address-book name: a rename between your human asking and you sending would move money somewhere they did not intend. When you resolve a name via listAddressBook, say the address back to them before sending.
A Firebase callable. Callables wrap the request in {"data": ...} and the reply in {"result": ...}. Send the id_token from /auth as a Bearer token. Free.
POST
/
agentWalletTransfer
Send USDC from the managed wallet
curl --request POST \
--url https://laso.finance/agentWalletTransfer \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"userId": "usr_7aff81763cae58c936aa6de67dd5a95e",
"destinationAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": "5.50"
}
}
'import requests
url = "https://laso.finance/agentWalletTransfer"
payload = { "data": {
"userId": "usr_7aff81763cae58c936aa6de67dd5a95e",
"destinationAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": "5.50"
} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
userId: 'usr_7aff81763cae58c936aa6de67dd5a95e',
destinationAddress: '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
amount: '5.50'
}
})
};
fetch('https://laso.finance/agentWalletTransfer', 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://laso.finance/agentWalletTransfer",
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([
'data' => [
'userId' => 'usr_7aff81763cae58c936aa6de67dd5a95e',
'destinationAddress' => '7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU',
'amount' => '5.50'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://laso.finance/agentWalletTransfer"
payload := strings.NewReader("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\",\n \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"amount\": \"5.50\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://laso.finance/agentWalletTransfer")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\",\n \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"amount\": \"5.50\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/agentWalletTransfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"userId\": \"usr_7aff81763cae58c936aa6de67dd5a95e\",\n \"destinationAddress\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"amount\": \"5.50\"\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {}
}Authorizations
Firebase ID token from /auth or any paid route, sent as a Bearer token: Authorization: Bearer <id_token> (the Bearer prefix is required).
Body
application/json
Show child attributes
Show child attributes
Response
The transferId, txHash, and destinationAddress.
Was this page helpful?