Create passkey session
curl --request POST \
--url https://grid.squads.xyz/api/grid/v1/passkeys \
--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"
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', 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",
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"
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")
.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")
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
Create passkey session
Initiate a new passkey creation session. Returns a URL for the passkey creation flow with challenge and session parameters.
POST
/
api
/
grid
/
v1
/
passkeys
Create passkey session
curl --request POST \
--url https://grid.squads.xyz/api/grid/v1/passkeys \
--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"
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', 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",
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"
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")
.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")
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 session URL created successfully
Was this page helpful?
⌘I