Authorize passkey session
curl --request POST \
--url https://grid.squads.xyz/api/grid/v1/passkeys/auth \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-grid-environment: <x-grid-environment>' \
--data '
{
"metaInfo": {
"appName": "<string>",
"redirectUrl": "<string>"
},
"baseUrl": "<string>",
"sessionKey": {
"expiration": 1,
"key": "11111111111111111111111111111111"
}
}
'import requests
url = "https://grid.squads.xyz/api/grid/v1/passkeys/auth"
payload = {
"metaInfo": {
"appName": "<string>",
"redirectUrl": "<string>"
},
"baseUrl": "<string>",
"sessionKey": {
"expiration": 1,
"key": "11111111111111111111111111111111"
}
}
headers = {
"x-grid-environment": "<x-grid-environment>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-grid-environment': '<x-grid-environment>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
metaInfo: {appName: '<string>', redirectUrl: '<string>'},
baseUrl: '<string>',
sessionKey: {expiration: 1, key: '11111111111111111111111111111111'}
})
};
fetch('https://grid.squads.xyz/api/grid/v1/passkeys/auth', 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://grid.squads.xyz/api/grid/v1/passkeys/auth",
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([
'metaInfo' => [
'appName' => '<string>',
'redirectUrl' => '<string>'
],
'baseUrl' => '<string>',
'sessionKey' => [
'expiration' => 1,
'key' => '11111111111111111111111111111111'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-grid-environment: <x-grid-environment>"
],
]);
$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://grid.squads.xyz/api/grid/v1/passkeys/auth"
payload := strings.NewReader("{\n \"metaInfo\": {\n \"appName\": \"<string>\",\n \"redirectUrl\": \"<string>\"\n },\n \"baseUrl\": \"<string>\",\n \"sessionKey\": {\n \"expiration\": 1,\n \"key\": \"11111111111111111111111111111111\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-grid-environment", "<x-grid-environment>")
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://grid.squads.xyz/api/grid/v1/passkeys/auth")
.header("x-grid-environment", "<x-grid-environment>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metaInfo\": {\n \"appName\": \"<string>\",\n \"redirectUrl\": \"<string>\"\n },\n \"baseUrl\": \"<string>\",\n \"sessionKey\": {\n \"expiration\": 1,\n \"key\": \"11111111111111111111111111111111\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://grid.squads.xyz/api/grid/v1/passkeys/auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-grid-environment"] = '<x-grid-environment>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metaInfo\": {\n \"appName\": \"<string>\",\n \"redirectUrl\": \"<string>\"\n },\n \"baseUrl\": \"<string>\",\n \"sessionKey\": {\n \"expiration\": 1,\n \"key\": \"11111111111111111111111111111111\"\n }\n}"
response = http.request(request)
puts response.read_body{
"url": "<string>"
}passkeys
Authorize passkey session
Authorize and refresh a passkey session. Requires a session key and returns a URL for session authorization flow with a challenge for session refresh.
POST
/
api
/
grid
/
v1
/
passkeys
/
auth
Authorize passkey session
curl --request POST \
--url https://grid.squads.xyz/api/grid/v1/passkeys/auth \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-grid-environment: <x-grid-environment>' \
--data '
{
"metaInfo": {
"appName": "<string>",
"redirectUrl": "<string>"
},
"baseUrl": "<string>",
"sessionKey": {
"expiration": 1,
"key": "11111111111111111111111111111111"
}
}
'import requests
url = "https://grid.squads.xyz/api/grid/v1/passkeys/auth"
payload = {
"metaInfo": {
"appName": "<string>",
"redirectUrl": "<string>"
},
"baseUrl": "<string>",
"sessionKey": {
"expiration": 1,
"key": "11111111111111111111111111111111"
}
}
headers = {
"x-grid-environment": "<x-grid-environment>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-grid-environment': '<x-grid-environment>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
metaInfo: {appName: '<string>', redirectUrl: '<string>'},
baseUrl: '<string>',
sessionKey: {expiration: 1, key: '11111111111111111111111111111111'}
})
};
fetch('https://grid.squads.xyz/api/grid/v1/passkeys/auth', 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://grid.squads.xyz/api/grid/v1/passkeys/auth",
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([
'metaInfo' => [
'appName' => '<string>',
'redirectUrl' => '<string>'
],
'baseUrl' => '<string>',
'sessionKey' => [
'expiration' => 1,
'key' => '11111111111111111111111111111111'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-grid-environment: <x-grid-environment>"
],
]);
$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://grid.squads.xyz/api/grid/v1/passkeys/auth"
payload := strings.NewReader("{\n \"metaInfo\": {\n \"appName\": \"<string>\",\n \"redirectUrl\": \"<string>\"\n },\n \"baseUrl\": \"<string>\",\n \"sessionKey\": {\n \"expiration\": 1,\n \"key\": \"11111111111111111111111111111111\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-grid-environment", "<x-grid-environment>")
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://grid.squads.xyz/api/grid/v1/passkeys/auth")
.header("x-grid-environment", "<x-grid-environment>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metaInfo\": {\n \"appName\": \"<string>\",\n \"redirectUrl\": \"<string>\"\n },\n \"baseUrl\": \"<string>\",\n \"sessionKey\": {\n \"expiration\": 1,\n \"key\": \"11111111111111111111111111111111\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://grid.squads.xyz/api/grid/v1/passkeys/auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-grid-environment"] = '<x-grid-environment>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metaInfo\": {\n \"appName\": \"<string>\",\n \"redirectUrl\": \"<string>\"\n },\n \"baseUrl\": \"<string>\",\n \"sessionKey\": {\n \"expiration\": 1,\n \"key\": \"11111111111111111111111111111111\"\n }\n}"
response = http.request(request)
puts response.read_body{
"url": "<string>"
}Authorizations
Your Grid API key from the Grid Dashboard
Headers
Solana network environment (sandbox, devnet, mainnet)
Body
application/json
Show child attributes
Show child attributes
Grid v1 API SessionKey type that supports backward-compatible deserialization from both raw bytes array (old format) and base58 string (new format). Always serializes to base58 string format.
Show child attributes
Show child attributes
Response
Passkey authorization URL created successfully
Was this page helpful?
⌘I