Get Signature
curl --request GET \
--url https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId} \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}', 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://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-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"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"chainType": "aptos",
"createdAt": 123,
"id": "<string>",
"params": {
"authorizationEntries": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
}
},
"status": "awaiting-approval",
"type": "auth-entries",
"walletType": "mpc",
"approvals": {
"pending": [
{
"quorumApprovals": {
"pending": [
{
"message": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
}
}
],
"remaining": 123,
"submitted": [
{
"message": "<string>",
"signature": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
},
"submittedAt": 123
}
],
"threshold": 123
},
"signer": {
"locator": "<string>",
"type": "quorum"
}
}
],
"submitted": [
{
"quorumApprovals": {
"pending": [
{
"message": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
}
}
],
"remaining": 123,
"submitted": [
{
"message": "<string>",
"signature": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
},
"submittedAt": 123
}
],
"threshold": 123
},
"signer": {
"locator": "<string>",
"type": "quorum"
}
}
],
"required": 123
},
"completedAt": 123,
"error": "<unknown>",
"outputSignature": "<string>"
}{
"error": true,
"message": "<error message>",
"code": "DEVICE_SIGNER_NOT_SUPPORTED"
}REST
Get Signature
Retrieves details about a specific signature by its ID.
API scope required: wallets:signatures.read
GET
/
2025-06-09
/
wallets
/
{walletLocator}
/
signatures
/
{signatureId}
Get Signature
curl --request GET \
--url https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId} \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}', 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://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-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"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signatures/{signatureId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"chainType": "aptos",
"createdAt": 123,
"id": "<string>",
"params": {
"authorizationEntries": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
}
},
"status": "awaiting-approval",
"type": "auth-entries",
"walletType": "mpc",
"approvals": {
"pending": [
{
"quorumApprovals": {
"pending": [
{
"message": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
}
}
],
"remaining": 123,
"submitted": [
{
"message": "<string>",
"signature": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
},
"submittedAt": 123
}
],
"threshold": 123
},
"signer": {
"locator": "<string>",
"type": "quorum"
}
}
],
"submitted": [
{
"quorumApprovals": {
"pending": [
{
"message": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
}
}
],
"remaining": 123,
"submitted": [
{
"message": "<string>",
"signature": "<string>",
"signer": {
"address": "<string>",
"locator": "<string>",
"type": "api-key"
},
"submittedAt": 123
}
],
"threshold": 123
},
"signer": {
"locator": "<string>",
"type": "quorum"
}
}
],
"required": 123
},
"completedAt": 123,
"error": "<unknown>",
"outputSignature": "<string>"
}{
"error": true,
"message": "<error message>",
"code": "DEVICE_SIGNER_NOT_SUPPORTED"
}Headers
API key required for authentication
Path Parameters
A wallet locator can be of the format:
<walletAddress>email:<email>:<chainType>[:<walletType>][:alias:<alias>](walletType defaults to 'smart')userId:<userId>:<chainType>[:<walletType>][:alias:<alias>](white label user example)phoneNumber:<phoneNumber>:<chainType>[:<walletType>][:alias:<alias>]twitter:<handle>:<chainType>[:<walletType>][:alias:<alias>]x:<handle>:<chainType>[:<walletType>][:alias:<alias>]me:<chainType>[:<walletType>][:alias:<alias>](Use when calling from the client side with a client API key)chainType[:<walletType>]:alias:<alias>
Response
The signature has been successfully retrieved.
The blockchain type of the wallet
Available options:
aptos, evm, solana, stellar, sui ISO timestamp when the signature was created
Unique identifier for the signature
Type-specific signature parameters
- Auth entries signature parameters
- Message signature parameters
- Typed data signature parameters
Show child attributes
Show child attributes
Current status of the signature
Available options:
awaiting-approval, failed, pending, success The type of signature
Available options:
auth-entries, message, typed-data The wallet type (smart or mpc)
Available options:
mpc, smart Complete approval data including requirements, pending and submitted signatures
Show child attributes
Show child attributes
ISO timestamp when the transaction reached finality
Error message if the signature fails
The wallet's output signature of the request
Was this page helpful?

