curl --request POST \
--url https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"address": "0x5a927ac639636e534b678e81768ca19e2c6280b7",
"app_fid": 3,
"deadline": 123,
"signature": "0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c",
"redirect_url": "<string>",
"sponsor": {
"fid": 3,
"signature": "<string>",
"sponsored_by_neynar": true
}
}
'import requests
url = "https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/"
payload = {
"address": "0x5a927ac639636e534b678e81768ca19e2c6280b7",
"app_fid": 3,
"deadline": 123,
"signature": "0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c",
"redirect_url": "<string>",
"sponsor": {
"fid": 3,
"signature": "<string>",
"sponsored_by_neynar": True
}
}
headers = {
"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: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: '0x5a927ac639636e534b678e81768ca19e2c6280b7',
app_fid: 3,
deadline: 123,
signature: '0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c',
redirect_url: '<string>',
sponsor: {fid: 3, signature: '<string>', sponsored_by_neynar: true}
})
};
fetch('https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/', 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.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/",
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([
'address' => '0x5a927ac639636e534b678e81768ca19e2c6280b7',
'app_fid' => 3,
'deadline' => 123,
'signature' => '0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c',
'redirect_url' => '<string>',
'sponsor' => [
'fid' => 3,
'signature' => '<string>',
'sponsored_by_neynar' => true
]
]),
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.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/"
payload := strings.NewReader("{\n \"address\": \"0x5a927ac639636e534b678e81768ca19e2c6280b7\",\n \"app_fid\": 3,\n \"deadline\": 123,\n \"signature\": \"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c\",\n \"redirect_url\": \"<string>\",\n \"sponsor\": {\n \"fid\": 3,\n \"signature\": \"<string>\",\n \"sponsored_by_neynar\": true\n }\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.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"0x5a927ac639636e534b678e81768ca19e2c6280b7\",\n \"app_fid\": 3,\n \"deadline\": 123,\n \"signature\": \"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c\",\n \"redirect_url\": \"<string>\",\n \"sponsor\": {\n \"fid\": 3,\n \"signature\": \"<string>\",\n \"sponsored_by_neynar\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/")
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 \"address\": \"0x5a927ac639636e534b678e81768ca19e2c6280b7\",\n \"app_fid\": 3,\n \"deadline\": 123,\n \"signature\": \"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c\",\n \"redirect_url\": \"<string>\",\n \"sponsor\": {\n \"fid\": 3,\n \"signature\": \"<string>\",\n \"sponsored_by_neynar\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"address": "0x5a927ac639636e534b678e81768ca19e2c6280b7",
"status": "pending_approval",
"auth_address_approval_url": "<string>",
"fid": 3
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}Register Signed Key
Allow apps to register an Ethereum addresses as authorized “auth addresses” for a user’s Farcaster account, enabling seamless Sign-In With Farcaster (SIWF) across applications without repeated custody wallet authorizations.
curl --request POST \
--url https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"address": "0x5a927ac639636e534b678e81768ca19e2c6280b7",
"app_fid": 3,
"deadline": 123,
"signature": "0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c",
"redirect_url": "<string>",
"sponsor": {
"fid": 3,
"signature": "<string>",
"sponsored_by_neynar": true
}
}
'import requests
url = "https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/"
payload = {
"address": "0x5a927ac639636e534b678e81768ca19e2c6280b7",
"app_fid": 3,
"deadline": 123,
"signature": "0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c",
"redirect_url": "<string>",
"sponsor": {
"fid": 3,
"signature": "<string>",
"sponsored_by_neynar": True
}
}
headers = {
"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: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: '0x5a927ac639636e534b678e81768ca19e2c6280b7',
app_fid: 3,
deadline: 123,
signature: '0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c',
redirect_url: '<string>',
sponsor: {fid: 3, signature: '<string>', sponsored_by_neynar: true}
})
};
fetch('https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/', 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.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/",
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([
'address' => '0x5a927ac639636e534b678e81768ca19e2c6280b7',
'app_fid' => 3,
'deadline' => 123,
'signature' => '0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c',
'redirect_url' => '<string>',
'sponsor' => [
'fid' => 3,
'signature' => '<string>',
'sponsored_by_neynar' => true
]
]),
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.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/"
payload := strings.NewReader("{\n \"address\": \"0x5a927ac639636e534b678e81768ca19e2c6280b7\",\n \"app_fid\": 3,\n \"deadline\": 123,\n \"signature\": \"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c\",\n \"redirect_url\": \"<string>\",\n \"sponsor\": {\n \"fid\": 3,\n \"signature\": \"<string>\",\n \"sponsored_by_neynar\": true\n }\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.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"0x5a927ac639636e534b678e81768ca19e2c6280b7\",\n \"app_fid\": 3,\n \"deadline\": 123,\n \"signature\": \"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c\",\n \"redirect_url\": \"<string>\",\n \"sponsor\": {\n \"fid\": 3,\n \"signature\": \"<string>\",\n \"sponsored_by_neynar\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neynar.com/v2/farcaster/auth_address/developer_managed/signed_key/")
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 \"address\": \"0x5a927ac639636e534b678e81768ca19e2c6280b7\",\n \"app_fid\": 3,\n \"deadline\": 123,\n \"signature\": \"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c\",\n \"redirect_url\": \"<string>\",\n \"sponsor\": {\n \"fid\": 3,\n \"signature\": \"<string>\",\n \"sponsored_by_neynar\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"address": "0x5a927ac639636e534b678e81768ca19e2c6280b7",
"status": "pending_approval",
"auth_address_approval_url": "<string>",
"fid": 3
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}{
"message": "<string>",
"code": "<string>",
"property": "<string>",
"status": 123
}Node.js SDK
🔗 SDK Method: registerSignedKeyForDeveloperManagedAuthAddress Use this API endpoint with the Neynar Node.js SDK for typed responses and better developer experience.Authorizations
API key to authorize requests
Body
Ethereum address
^0x[a-fA-F0-9]{40}$"0x5a927ac639636e534b678e81768ca19e2c6280b7"
The unique identifier of a farcaster user or app (unsigned integer)
x >= 03
unix timestamp in seconds that controls how long the signed key request is valid for. (24 hours from now is recommended)
Signature generated by the custody address of the app. Signed data includes app_fid, deadline, 32 bytes padded auth address. Refer guide for more details.
^0x[a-fA-F0-9]+$"0x16161933625ac90b7201625bfea0d816de0449ea1802d97a38c53eef3c9c0c424fefbc5c6fb5eabe3d4f161a36d18cda585cff7e77c677c5d34a9c87e68ede011c"
Url to redirect to after the signer is approved. Note : This should only be used when requesting a signer from a native mobile application.
Show child attributes
Show child attributes
Response
Success
Ethereum address
^0x[a-fA-F0-9]{40}$"0x5a927ac639636e534b678e81768ca19e2c6280b7"
pending_approval, approved, revoked The unique identifier of a farcaster user or app (unsigned integer)
x >= 03
Related topics
Register Signed KeyregisterSignedKeyregisterSignedKeyForDeveloperManagedSignerregisterSignedKeyForDeveloperManagedAuthAddressWas this page helpful?