Get a wallet authorization challenge
curl --request GET \
--url https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization', 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://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"issuedAt": 123,
"expiresAt": 123,
"typedData": {
"domain": {},
"types": {},
"value": {}
}
}{
"error": "<string>",
"code": "validation_error"
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}{
"error": "<string>",
"code": "validation_error"
}{
"error": "<string>",
"code": "validation_error"
}{
"error": "Service temporarily unavailable",
"code": "service_temporarily_unavailable",
"retryable": true
}Direct Access
Get a wallet authorization challenge
Get organization-bound EIP-712 typed data to sign for wallet admission. The authorization expires in five minutes.
GET
/
v2
/
gvaults
/
{gVaultId}
/
allowlist
/
{address}
/
authorization
Get a wallet authorization challenge
curl --request GET \
--url https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization', 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://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/gvaults/{gVaultId}/allowlist/{address}/authorization")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"issuedAt": 123,
"expiresAt": 123,
"typedData": {
"domain": {},
"types": {},
"value": {}
}
}{
"error": "<string>",
"code": "validation_error"
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}{
"error": "<string>",
"code": "validation_error"
}{
"error": "<string>",
"code": "validation_error"
}{
"error": "Service temporarily unavailable",
"code": "service_temporarily_unavailable",
"retryable": true
}Request this challenge using your Ground API key. Have the wallet sign the returned
typedData.domain, typedData.types, and typedData.value, then send its signature together with issuedAt and expiresAt to the allowlist endpoint. The challenge expires after five minutes.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Source ID returned by the gtoken yield-source catalogue.
Available options:
ground-ustb-vault Example:
"ground-ustb-vault"
Valid nonzero EVM EOA or contract address. Mixed-case values must use a valid EIP-55 checksum.
Required string length:
42Pattern:
^0x(?!0{40}$)[0-9a-fA-F]{40}$Example:
"0x3bf25a73a1f1033c2d50ac65f3c9d6a44123db81"