Set Profile Preference
curl --request POST \
--url https://profiles.b3.fun/preference \
--header 'Content-Type: application/json' \
--data '
{
"key": "<string>",
"signature": "<string>",
"signer": "<string>",
"timestamp": 123
}
'import requests
url = "https://profiles.b3.fun/preference"
payload = {
"key": "<string>",
"signature": "<string>",
"signer": "<string>",
"timestamp": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({key: '<string>', signature: '<string>', signer: '<string>', timestamp: 123})
};
fetch('https://profiles.b3.fun/preference', 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://profiles.b3.fun/preference",
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([
'key' => '<string>',
'signature' => '<string>',
'signer' => '<string>',
'timestamp' => 123
]),
CURLOPT_HTTPHEADER => [
"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://profiles.b3.fun/preference"
payload := strings.NewReader("{\n \"key\": \"<string>\",\n \"signature\": \"<string>\",\n \"signer\": \"<string>\",\n \"timestamp\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
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://profiles.b3.fun/preference")
.header("Content-Type", "application/json")
.body("{\n \"key\": \"<string>\",\n \"signature\": \"<string>\",\n \"signer\": \"<string>\",\n \"timestamp\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://profiles.b3.fun/preference")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"key\": \"<string>\",\n \"signature\": \"<string>\",\n \"signer\": \"<string>\",\n \"timestamp\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true
}Preferences
Set Profile Preference
Allows users to set their preferred profile source through cryptographic signature verification. The signature must be valid and the timestamp must be within 10 minutes of the current time.
POST
/
preference
Set Profile Preference
curl --request POST \
--url https://profiles.b3.fun/preference \
--header 'Content-Type: application/json' \
--data '
{
"key": "<string>",
"signature": "<string>",
"signer": "<string>",
"timestamp": 123
}
'import requests
url = "https://profiles.b3.fun/preference"
payload = {
"key": "<string>",
"signature": "<string>",
"signer": "<string>",
"timestamp": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({key: '<string>', signature: '<string>', signer: '<string>', timestamp: 123})
};
fetch('https://profiles.b3.fun/preference', 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://profiles.b3.fun/preference",
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([
'key' => '<string>',
'signature' => '<string>',
'signer' => '<string>',
'timestamp' => 123
]),
CURLOPT_HTTPHEADER => [
"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://profiles.b3.fun/preference"
payload := strings.NewReader("{\n \"key\": \"<string>\",\n \"signature\": \"<string>\",\n \"signer\": \"<string>\",\n \"timestamp\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
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://profiles.b3.fun/preference")
.header("Content-Type", "application/json")
.body("{\n \"key\": \"<string>\",\n \"signature\": \"<string>\",\n \"signer\": \"<string>\",\n \"timestamp\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://profiles.b3.fun/preference")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"key\": \"<string>\",\n \"signature\": \"<string>\",\n \"signer\": \"<string>\",\n \"timestamp\": 123\n}"
response = http.request(request)
puts response.read_body{
"success": true
}Body
application/json
Request to set profile source preference
Ethereum wallet address (will be normalized to lowercase)
Preferred profile source type
Available options:
ensdata, basement, b3-ens, thirdweb-farcaster, thirdweb-lens, global-account EIP-191 signature of the preference message
Address that signed the message (must match key)
Unix timestamp in seconds (must be within 10 minutes of current time)
Response
Preference set successfully
Example:
true
HypeDuel