Transacciones
getTransactionsForAddress
getTransactionsForAddress devuelve el historial completo de transacciones de Solana de una dirección en una sola llamada: filtros por tiempo, slot y estado, ordenamiento y paginación por conjunto de claves.
POST
/
getTransactionsForAddress
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "1",
"method": "getTransactionsForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"transactionDetails": "signatures",
"limit": 50,
"sortOrder": "desc",
"filters": {
"status": "succeeded",
"slot": {
"gte": 1000,
"lt": 2000
},
"tokenTransfer": {
"direction": "in",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
}
}
]
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "1",
"method": "getTransactionsForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"transactionDetails": "signatures",
"limit": 50,
"sortOrder": "desc",
"filters": {
"status": "succeeded",
"slot": {
"gte": 1000,
"lt": 2000
},
"tokenTransfer": {
"direction": "in",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
}
}
]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: '1',
method: 'getTransactionsForAddress',
params: [
'Vote111111111111111111111111111111111111111',
{
transactionDetails: 'signatures',
limit: 50,
sortOrder: 'desc',
filters: {
status: 'succeeded',
slot: {gte: 1000, lt: 2000},
tokenTransfer: {direction: 'in', mint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'}
}
}
]
})
};
fetch('https://mainnet.helius-rpc.com/?api-key=', 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://mainnet.helius-rpc.com/?api-key=",
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([
'jsonrpc' => '2.0',
'id' => '1',
'method' => 'getTransactionsForAddress',
'params' => [
'Vote111111111111111111111111111111111111111',
[
'transactionDetails' => 'signatures',
'limit' => 50,
'sortOrder' => 'desc',
'filters' => [
'status' => 'succeeded',
'slot' => [
'gte' => 1000,
'lt' => 2000
],
'tokenTransfer' => [
'direction' => 'in',
'mint' => 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://mainnet.helius-rpc.com/?api-key="
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getTransactionsForAddress\",\n \"params\": [\n \"Vote111111111111111111111111111111111111111\",\n {\n \"transactionDetails\": \"signatures\",\n \"limit\": 50,\n \"sortOrder\": \"desc\",\n \"filters\": {\n \"status\": \"succeeded\",\n \"slot\": {\n \"gte\": 1000,\n \"lt\": 2000\n },\n \"tokenTransfer\": {\n \"direction\": \"in\",\n \"mint\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n }\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://mainnet.helius-rpc.com/?api-key=")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getTransactionsForAddress\",\n \"params\": [\n \"Vote111111111111111111111111111111111111111\",\n {\n \"transactionDetails\": \"signatures\",\n \"limit\": 50,\n \"sortOrder\": \"desc\",\n \"filters\": {\n \"status\": \"succeeded\",\n \"slot\": {\n \"gte\": 1000,\n \"lt\": 2000\n },\n \"tokenTransfer\": {\n \"direction\": \"in\",\n \"mint\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n }\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mainnet.helius-rpc.com/?api-key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getTransactionsForAddress\",\n \"params\": [\n \"Vote111111111111111111111111111111111111111\",\n {\n \"transactionDetails\": \"signatures\",\n \"limit\": 50,\n \"sortOrder\": \"desc\",\n \"filters\": {\n \"status\": \"succeeded\",\n \"slot\": {\n \"gte\": 1000,\n \"lt\": 2000\n },\n \"tokenTransfer\": {\n \"direction\": \"in\",\n \"mint\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n }\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": "1",
"result": {
"data": [
{
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"slot": 1054,
"transactionIndex": 42,
"err": null,
"memo": null,
"blockTime": 1641038400,
"confirmationStatus": "finalized"
},
{
"signature": "kwjd820slPK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"slot": 1055,
"transactionIndex": 15,
"err": null,
"memo": null,
"blockTime": 1641038460,
"confirmationStatus": "finalized"
}
],
"paginationToken": "1055:5"
}
}
Parámetros de la solicitud
string
requerido
Dirección de una cuenta de Solana cuyo historial de transacciones se recuperará (billetera, token, programa, NFT, etc.).
string
predeterminado:"signatures"
Nivel de detalle de las transacciones que se devolverá.
signaturesfull
string
predeterminado:"desc"
Orden de las transacciones devueltas.
ascdesc
string
predeterminado:"finalized"
Nivel de compromiso de la solicitud. No se admite el nivel de compromiso
processed.confirmedfinalized
number
Slot de contexto mínimo que se usará para la solicitud (opcional).
number
predeterminado:"1000"
Número máximo de transacciones por solicitud. Usa de 1 a 1000 para transactionDetails:“signatures” y de 1 a 1000 para transactionDetails:“full”.
string
Token de paginación de la respuesta anterior para obtener la siguiente página de resultados (formato “slot:position”).
string
predeterminado:"json"
Formato de codificación de los datos de la transacción (solo se aplica cuando transactionDetails=full).
jsonjsonParsedbase58base64
number
Versión máxima de transacción que se devolverá (solo se aplica cuando transactionDetails=full). Establécela en 1 para recibir transacciones heredadas, v0 y v1.
object
Filtros avanzados para restringir los resultados de las transacciones.
object
Filtra por número de slot.
number
Mayor o igual que el número de slot.
number
Mayor que el número de slot.
number
Menor o igual que el número de slot.
number
Menor que el número de slot.
object
Filtra por marca de tiempo del bloque (marca de tiempo Unix).
number
Mayor o igual que la marca de tiempo.
number
Mayor que la marca de tiempo.
number
Menor o igual que la marca de tiempo.
number
Menor que la marca de tiempo.
number
Igual que la marca de tiempo.
object
Filtra por firma de la transacción.
string
Obtén las transacciones cuyas firmas sean mayores o iguales que este valor.
string
Obtén las transacciones posteriores a esta firma.
string
Obtén las transacciones cuyas firmas sean menores o iguales que este valor.
string
Obtén las transacciones anteriores a esta firma.
string
predeterminado:"any"
Filtra por estado de la transacción.
succeededfailedany
string
predeterminado:"none"
Filtra las transacciones de cuentas de token relacionadas. Controla si se incluyen las transacciones que involucran cuentas de token pertenecientes a la dirección.
nonebalanceChangedall
object
Restringe los resultados a las transacciones en las que la dirección consultada participó en una transferencia de tokens que coincide con criterios específicos. Todos los campos son opcionales y se combinan con la semántica AND.
string
Dirección de la contraparte. Coincide con transferencias cuya otra parte sea esta dirección.
string
predeterminado:"any"
Dirección de la transferencia con respecto a la dirección consultada.
inoutany
string
Acuñación del token por la que se filtrará.
object
Filtro por intervalo del importe bruto en cadena. Todos los campos son opcionales y se pueden combinar.
Autorizaciones
Cuerpo
application/json
La versión del protocolo JSON-RPC.
Opciones disponibles:
2.0 Ejemplo:
"2.0"
Un identificador único para la solicitud.
Ejemplo:
"1"
El nombre del método RPC que se invocará.
Opciones disponibles:
getTransactionsForAddress Ejemplo:
"getTransactionsForAddress"
Arreglo que contiene la dirección de cuenta requerida y un objeto de configuración opcional.
Required array length:
1 - 2 elementsDirección de la cuenta de Solana cuyo historial de transacciones se recuperará (billetera, token, programa, NFT, etc.).
Ejemplo:
"Vote111111111111111111111111111111111111111"
Respuesta
Se recuperaron correctamente las transacciones de la dirección especificada.
¿Esta página le ayudó?
⌘I
getTransactionsForAddress
curl --request POST \
--url 'https://mainnet.helius-rpc.com/?api-key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "1",
"method": "getTransactionsForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"transactionDetails": "signatures",
"limit": 50,
"sortOrder": "desc",
"filters": {
"status": "succeeded",
"slot": {
"gte": 1000,
"lt": 2000
},
"tokenTransfer": {
"direction": "in",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
}
}
]
}
'import requests
url = "https://mainnet.helius-rpc.com/?api-key="
payload = {
"jsonrpc": "2.0",
"id": "1",
"method": "getTransactionsForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"transactionDetails": "signatures",
"limit": 50,
"sortOrder": "desc",
"filters": {
"status": "succeeded",
"slot": {
"gte": 1000,
"lt": 2000
},
"tokenTransfer": {
"direction": "in",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
}
}
]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: '1',
method: 'getTransactionsForAddress',
params: [
'Vote111111111111111111111111111111111111111',
{
transactionDetails: 'signatures',
limit: 50,
sortOrder: 'desc',
filters: {
status: 'succeeded',
slot: {gte: 1000, lt: 2000},
tokenTransfer: {direction: 'in', mint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'}
}
}
]
})
};
fetch('https://mainnet.helius-rpc.com/?api-key=', 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://mainnet.helius-rpc.com/?api-key=",
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([
'jsonrpc' => '2.0',
'id' => '1',
'method' => 'getTransactionsForAddress',
'params' => [
'Vote111111111111111111111111111111111111111',
[
'transactionDetails' => 'signatures',
'limit' => 50,
'sortOrder' => 'desc',
'filters' => [
'status' => 'succeeded',
'slot' => [
'gte' => 1000,
'lt' => 2000
],
'tokenTransfer' => [
'direction' => 'in',
'mint' => 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://mainnet.helius-rpc.com/?api-key="
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getTransactionsForAddress\",\n \"params\": [\n \"Vote111111111111111111111111111111111111111\",\n {\n \"transactionDetails\": \"signatures\",\n \"limit\": 50,\n \"sortOrder\": \"desc\",\n \"filters\": {\n \"status\": \"succeeded\",\n \"slot\": {\n \"gte\": 1000,\n \"lt\": 2000\n },\n \"tokenTransfer\": {\n \"direction\": \"in\",\n \"mint\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n }\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://mainnet.helius-rpc.com/?api-key=")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getTransactionsForAddress\",\n \"params\": [\n \"Vote111111111111111111111111111111111111111\",\n {\n \"transactionDetails\": \"signatures\",\n \"limit\": 50,\n \"sortOrder\": \"desc\",\n \"filters\": {\n \"status\": \"succeeded\",\n \"slot\": {\n \"gte\": 1000,\n \"lt\": 2000\n },\n \"tokenTransfer\": {\n \"direction\": \"in\",\n \"mint\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n }\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mainnet.helius-rpc.com/?api-key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": \"1\",\n \"method\": \"getTransactionsForAddress\",\n \"params\": [\n \"Vote111111111111111111111111111111111111111\",\n {\n \"transactionDetails\": \"signatures\",\n \"limit\": 50,\n \"sortOrder\": \"desc\",\n \"filters\": {\n \"status\": \"succeeded\",\n \"slot\": {\n \"gte\": 1000,\n \"lt\": 2000\n },\n \"tokenTransfer\": {\n \"direction\": \"in\",\n \"mint\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n }\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": "1",
"result": {
"data": [
{
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"slot": 1054,
"transactionIndex": 42,
"err": null,
"memo": null,
"blockTime": 1641038400,
"confirmationStatus": "finalized"
},
{
"signature": "kwjd820slPK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"slot": 1055,
"transactionIndex": 15,
"err": null,
"memo": null,
"blockTime": 1641038460,
"confirmationStatus": "finalized"
}
],
"paginationToken": "1055:5"
}
}