curl --request POST \
--url https://laso.finance/announceAgentConnection \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"agentName": "Claude",
"message": "<string>"
}
'import requests
url = "https://laso.finance/announceAgentConnection"
payload = {
"agentName": "Claude",
"message": "<string>"
}
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({agentName: 'Claude', message: '<string>'})
};
fetch('https://laso.finance/announceAgentConnection', 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/announceAgentConnection",
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([
'agentName' => 'Claude',
'message' => '<string>'
]),
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/announceAgentConnection"
payload := strings.NewReader("{\n \"agentName\": \"Claude\",\n \"message\": \"<string>\"\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/announceAgentConnection")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"agentName\": \"Claude\",\n \"message\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/announceAgentConnection")
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 \"agentName\": \"Claude\",\n \"message\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}Announce that you connected
Required immediately after sign-in, before anything else. Your human is on a “waiting for your agent” screen that only flips to “connected” when this lands; until then a successful sign-in is indistinguishable from a broken one on their side. Skipping it is the most common agent mistake here, and the one humans actually notice.
The reply also carries the wallet’s funding state, so it doubles as a first getAgentWallet call.
Send the id_token from /auth as a Bearer token, with a plain JSON body (no data wrapper). Free.
curl --request POST \
--url https://laso.finance/announceAgentConnection \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"agentName": "Claude",
"message": "<string>"
}
'import requests
url = "https://laso.finance/announceAgentConnection"
payload = {
"agentName": "Claude",
"message": "<string>"
}
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({agentName: 'Claude', message: '<string>'})
};
fetch('https://laso.finance/announceAgentConnection', 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/announceAgentConnection",
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([
'agentName' => 'Claude',
'message' => '<string>'
]),
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/announceAgentConnection"
payload := strings.NewReader("{\n \"agentName\": \"Claude\",\n \"message\": \"<string>\"\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/announceAgentConnection")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"agentName\": \"Claude\",\n \"message\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://laso.finance/announceAgentConnection")
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 \"agentName\": \"Claude\",\n \"message\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}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
Response
Confirmation, plus the wallet's current funding state.
The response is of type object.
Was this page helpful?