curl --request GET \
--url https://api.beta.getpara.com/v1/wallets/{walletId}/transactions \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.beta.getpara.com/v1/wallets/{walletId}/transactions"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.beta.getpara.com/v1/wallets/{walletId}/transactions', 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://api.beta.getpara.com/v1/wallets/{walletId}/transactions",
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: <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://api.beta.getpara.com/v1/wallets/{walletId}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://api.beta.getpara.com/v1/wallets/{walletId}/transactions")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.beta.getpara.com/v1/wallets/{walletId}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"transactionId": "550e8400-e29b-41d4-a716-446655440000",
"walletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"walletType": "EVM",
"intentKind": "transfer",
"status": "pending",
"createdAt": "2023-11-07T05:31:56Z",
"executionMode": "legacy",
"chainId": "<string>",
"network": "SOLANA",
"to": "<string>",
"value": "<string>",
"tokenAddress": "<string>",
"monitoring": {
"state": "active",
"timedOutAt": "2023-11-07T05:31:56Z",
"lastCheckedAt": "2023-11-07T05:31:56Z",
"reason": "pending",
"chainOutcome": "success",
"winningHash": "<string>",
"winningStatus": "confirmed"
},
"hash": "<string>",
"blockNumber": "<string>",
"blockHash": "<string>",
"failureStage": "mpc_sign",
"failureCode": "<string>",
"failureMessage": "<string>",
"submittedAt": "2023-11-07T05:31:56Z",
"resolvedAt": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"cursor": "<string>",
"hasMore": true,
"limit": 50
}
}{
"code": "INVALID_REQUEST",
"message": "type must be one of EVM, SOLANA, COSMOS, STELLAR, SUI"
}{
"code": "UNAUTHORIZED",
"message": "secret api key not provided"
}{
"code": "FORBIDDEN",
"message": "invalid secret api key"
}{
"code": "NOT_FOUND",
"message": "wallet not found"
}{
"code": "RATE_LIMITED",
"message": "Rate limit exceeded, try again shortly."
}{
"code": "INTERNAL_ERROR",
"message": "Internal Server Error"
}List Transactions
List the REST transaction history for a wallet, scoped to the authenticated partner.
Results are ordered by createdAt DESC and paginated via opaque cursor.
POST /transfer broadcasts by default and appears in this list. POST /sign-transaction
appears only when called with broadcast: true. Sign-only requests (broadcast: false
or omitted for sign-transaction) do not write history rows. Sponsored transfers
create a record when accepted, before signing or submission, including when policy review is required.
Legacy EVM and Solana broadcasts remain submitted during durable reconciliation after active monitoring ends.
Optional monitoring metadata describes unresolved checks and verified outcomes.
curl --request GET \
--url https://api.beta.getpara.com/v1/wallets/{walletId}/transactions \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.beta.getpara.com/v1/wallets/{walletId}/transactions"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.beta.getpara.com/v1/wallets/{walletId}/transactions', 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://api.beta.getpara.com/v1/wallets/{walletId}/transactions",
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: <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://api.beta.getpara.com/v1/wallets/{walletId}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://api.beta.getpara.com/v1/wallets/{walletId}/transactions")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.beta.getpara.com/v1/wallets/{walletId}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"transactionId": "550e8400-e29b-41d4-a716-446655440000",
"walletId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"walletType": "EVM",
"intentKind": "transfer",
"status": "pending",
"createdAt": "2023-11-07T05:31:56Z",
"executionMode": "legacy",
"chainId": "<string>",
"network": "SOLANA",
"to": "<string>",
"value": "<string>",
"tokenAddress": "<string>",
"monitoring": {
"state": "active",
"timedOutAt": "2023-11-07T05:31:56Z",
"lastCheckedAt": "2023-11-07T05:31:56Z",
"reason": "pending",
"chainOutcome": "success",
"winningHash": "<string>",
"winningStatus": "confirmed"
},
"hash": "<string>",
"blockNumber": "<string>",
"blockHash": "<string>",
"failureStage": "mpc_sign",
"failureCode": "<string>",
"failureMessage": "<string>",
"submittedAt": "2023-11-07T05:31:56Z",
"resolvedAt": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"cursor": "<string>",
"hasMore": true,
"limit": 50
}
}{
"code": "INVALID_REQUEST",
"message": "type must be one of EVM, SOLANA, COSMOS, STELLAR, SUI"
}{
"code": "UNAUTHORIZED",
"message": "secret api key not provided"
}{
"code": "FORBIDDEN",
"message": "invalid secret api key"
}{
"code": "NOT_FOUND",
"message": "wallet not found"
}{
"code": "RATE_LIMITED",
"message": "Rate limit exceeded, try again shortly."
}{
"code": "INTERNAL_ERROR",
"message": "Internal Server Error"
}Authorizations
Your partner secret key (server-side only)
Headers
UUID for request tracing. Para returns one if omitted.
Path Parameters
Wallet UUID. A malformed or inaccessible wallet ID returns 404.
"0a1b2c3d-4e5f-6789-abcd-ef0123456789"
Query Parameters
Maximum number of items to return (1-100)
1 <= x <= 100Opaque cursor for pagination. Use the value from a previous response's pagination.cursor field.
Filter by transaction status.
pending, submitted, confirmed, reverted, failed Filter by the REST operation that created the transaction record.
transfer, sign_transaction, yield