> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Examinar o histórico de transações

> Pesquise no servidor o histórico de um endereço em busca de transações que chamam instruções de programas ou envolvem emissões de tokens e retorne as correspondências analisadas, suas assinaturas ou uma contagem.

O corpo da solicitação, o esquema da resposta e os exemplos desta página são gerados a partir da definição OpenAPI.

A operação Scan percorre o histórico de um endereço, mantém as transações que correspondem aos seus critérios de `match` e analisa apenas essas transações. Use-a em vez de percorrer as páginas do [Histórico de transações analisadas](https://www.helius.dev/docs/pt-BR/api-reference/parsed-events/transaction-history.md) e filtrar no cliente.

Por padrão, cada item em `data` usa o mesmo formato `TransactionResult` retornado por [Analisar transações](https://www.helius.dev/docs/pt-BR/api-reference/parsed-events/transactions.md). Defina `returnShape` para obter apenas as assinaturas correspondentes ou apenas uma contagem. A resposta também inclui um resumo `scan` que informa até onde a varredura chegou e por que ela parou.

## Como a operação Scan funciona

1. A operação Scan busca o histórico do endereço em páginas de até 1.000 transações, em `sortOrder`, dentro dos limites de `slot`, `time` e assinatura que você definiu.
2. Ela mantém as transações que correspondem a todos os critérios definidos em `match`.
3. Ela para quando ocorre primeiro uma destas condições: `limit` correspondências encontradas (apenas para o formato padrão `transactions`), `budget.maxScannedTransactions` transações examinadas, fim do histórico ou da janela, ou limite de tempo da solicitação.

Uma varredura que para antecipadamente ainda é uma `200`. Faça outra chamada com o `paginationToken` retornado enquanto ele estiver presente, mesmo quando `data` estiver vazio.

## Critérios de correspondência

`match` é obrigatório. Defina `programs`, `mints` ou ambos. Quando você define ambos, uma transação deve corresponder aos dois.

### Correspondência por programa

`programs` lista até 20 programas, cada um no máximo uma vez. Uma transação corresponde quando contém uma instrução de qualquer um deles, de nível superior ou interna (CPI), dentro do `scope` do programa.

Para cada programa, você pode restringir a correspondência:

* `instructions`: nomes de instruções de qualquer versão da IDL do programa, conforme escritos na IDL ou em snake\_case. Um nome não encontrado nas IDLs do programa retorna `400`.
* `discriminators`: prefixos dos dados da instrução, cada um com 1 a 8 bytes codificados em hexadecimal e um prefixo `0x` opcional. Use-os para programas sem uma IDL.
* Defina uma das listas ou ambas. Com ambas, uma instrução corresponde quando é uma das instruções nomeadas ou quando seus dados começam com um dos discriminadores. Omita ambas para corresponder a qualquer instrução do programa.
* Cada lista aceita no máximo 50 entradas por programa.

Para confirmar os nomes das instruções decodificadas de um programa, use o método [`describeProgram`](https://www.helius.dev/docs/pt-BR/parsed-streams/quickstart#descoberta) do Parsed Streams.

### Correspondência por emissão

`mints` lista até 20 objetos no formato `{ "mint": "...", "scope": "address" }`, cada emissão no máximo uma vez. Uma transação corresponde quando um de seus saldos de tokens anterior ou posterior pertence a uma das emissões, dentro do `scope` dessa emissão.

Ao examinar uma carteira para uma emissão, defina `tokenAccounts` como `balanceChanged`. Por padrão, o histórico omite transações que envolvem apenas as contas de token da carteira, mas não a própria carteira, o que inclui muitas transferências de tokens recebidas.

### Correspondência com SOL nativo

O SOL nativo não tem saldos de tokens. Portanto, a operação Scan faz a correspondência com base em lamports. Use a emissão do SOL nativo `So11111111111111111111111111111111111111111` (o SOL encapsulado é `So11111111111111111111111111111111111111112`):

* Com o escopo `address`, uma transação corresponde quando os lamports do endereço examinado mudam.
* Com o escopo `transaction`, ela corresponde quando os lamports de qualquer conta mudam.

A taxa cobrada do pagador da taxa não conta. Cada conta é comparada individualmente. Portanto, lamports que saem de uma conta e retornam na mesma transação não contam. A correspondência de SOL nativo detecta SOL que um programa paga sem uma instrução de transferência, como em uma venda na Pump.fun. Ela também detecta movimentações incidentais, como gorjetas da Jito e aluguel pago por contas ou reembolsado delas.

### Escopo da correspondência

Cada programa e cada emissão recebe um `scope`:

| `scope` | A instrução de um programa conta quando | O saldo de tokens de uma emissão conta quando |
| - | - | - |
| `address` (padrão) | Uma de suas contas é `address`, uma conta de token pertence a `address`, uma conta de token tem como emissão `address` ou `address` é o próprio programa. | Sua conta de token é `address` ou pertence a `address`, ou sua emissão é `address`. |
| `transaction` | Ela aparece em qualquer lugar da transação. | Ele aparece em qualquer lugar da transação. |

Use o escopo `transaction` quando o endereço examinado estiver na transação, mas não na instrução ou no saldo que você está comparando. Por exemplo, o endereço apenas paga a taxa, executa uma transação multisig ou está ausente de uma CPI de evento do Anchor. Para examinar a emissão de um token em busca de transações que também tenham USDC, é necessário usar o escopo `transaction` na entrada de USDC.

A propriedade da conta de token vem de `owner` registrado em cada saldo de tokens. Transações antigas que não o registram correspondem ao escopo `address` apenas no próprio `address`.

## Formatos de retorno

`returnShape` define o que a resposta contém para as correspondências:

| `returnShape` | `data` | Use para |
| - | - | - |
| `transactions` (padrão) | Correspondências analisadas, até `limit`. | Ler as instruções decodificadas, transferências e resumos. |
| `signatures` | Um objeto `{ signature, slot, transactionIndex, blockTime }` por correspondência. | Coletar assinaturas correspondentes sem analisá-las. |
| `count` | Omitido. `scan.matchedTransactions` é o número de correspondências. | Contar correspondências em um intervalo. |

`signatures` e `count` ignoram `limit` e `rawTransaction`. Eles retornam todas as correspondências no intervalo examinado por uma solicitação. Portanto, param apenas em `windowEnd`, `budget` ou `deadline`. Para contar um histórico inteiro, continue fazendo chamadas com `paginationToken` e some os valores de `scan.matchedTransactions`.

Cada item em `data` com `returnShape: "signatures"` tem esta aparência:

```json theme={"system"}
{
  "signature": "5zmGhmd3JZxXzz8MnA8MM1K7PXRwA1z35n3xT6ZJGRz3sAi25p8jaZuPWFCB4nEPx7DUke9y3pwrd4V7xAFozQBy",
  "slot": 460869102,
  "transactionIndex": 203,
  "blockTime": 1792848886
}
```

Os três formatos têm o mesmo custo, pois os créditos dependem das páginas do histórico examinadas, não do que é retornado.

## Exemplos de solicitações

### Compras e vendas na Pump.fun

Examine o histórico do programa Pump.fun em busca das instruções `buy` e `sell`:

```json theme={"system"}
{
  "address": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
  "match": {
    "programs": [
      {
        "programId": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
        "instructions": ["buy", "sell"]
      }
    ]
  },
  "limit": 100
}
```

A Pump.fun também tem variantes como `buy_exact_sol_in`, `buy_v2` e `sell_v2`. Liste todos os nomes de instruções aos quais você deseja corresponder.

### Compras e vendas de um token

Para obter as negociações de um token na Pump.fun, examine o endereço de emissão do token em vez do programa. O histórico da emissão contém apenas a atividade desse token, e cada instrução de compra ou venda lista a emissão como uma conta. Portanto, ela corresponde ao escopo padrão `address`:

```json theme={"system"}
{
  "address": "<MINT_ADDRESS>",
  "match": {
    "programs": [
      {
        "programId": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
        "instructions": ["buy", "sell"]
      }
    ]
  }
}
```

Para manter apenas as transações do token que também envolvem uma conta de token USDC, adicione USDC com o escopo `transaction`. Com o escopo padrão `address`, um saldo de USDC teria que pertencer ao endereço de emissão. Portanto, nada corresponderia:

```json theme={"system"}
{
  "address": "<MINT_ADDRESS>",
  "match": {
    "mints": [
      { "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "scope": "transaction" }
    ]
  }
}
```

### Negociações de uma carteira em dois programas

Liste vários programas para corresponder a uma chamada a qualquer um deles. Esta solicitação retorna as negociações de uma carteira na Pump.fun e na PumpSwap apenas como assinaturas:

```json theme={"system"}
{
  "address": "<WALLET_ADDRESS>",
  "match": {
    "programs": [
      {
        "programId": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
        "instructions": ["buy", "sell"]
      },
      {
        "programId": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
        "instructions": ["buy", "sell"]
      }
    ]
  },
  "returnShape": "signatures"
}
```

### Atividade de USDC de uma carteira em um intervalo de tempo

Examine o histórico de uma carteira em busca de transações que envolveram USDC durante 2025. `tokenAccounts: "balanceChanged"` inclui transferências que envolveram apenas a conta de token USDC da carteira:

```json theme={"system"}
{
  "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
  "match": {
    "mints": [{ "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" }]
  },
  "tokenAccounts": "balanceChanged",
  "time": { "gte": 1735689600, "lte": 1767225599 }
}
```

Para obter apenas o número de transações correspondentes, adicione `"returnShape": "count"`.

### Movimentações de SOL de uma carteira

Examine uma carteira em busca de transações que alteraram seu saldo de SOL, além da taxa paga, durante 2025. Isso inclui SOL que um programa pagou sem uma instrução de transferência:

```json theme={"system"}
{
  "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52",
  "match": {
    "mints": [{ "mint": "So11111111111111111111111111111111111111111" }]
  },
  "time": { "gte": 1735689600, "lte": 1767225599 }
}
```

## Paginação e motivos de interrupção

`scan.stoppedOn` informa por que a solicitação terminou:

| `stoppedOn` | Significado | `paginationToken` |
| - | - | - |
| `windowEnd` | Chegou ao fim do histórico ou da janela solicitada. | Ausente. A varredura está concluída. |
| `limit` | Retornou `limit` correspondências. Apenas com o formato padrão `transactions`. | Retoma logo após a última correspondência retornada, para que nenhuma correspondência seja ignorada. |
| `budget` | Examinou `budget.maxScannedTransactions` transações. | Retoma na próxima página do histórico. |
| `deadline` | Atingiu o limite de tempo da solicitação. | Retoma na próxima página do histórico. Uma página interrompida pelo prazo é buscada novamente na próxima chamada. |

`scan.scannedThrough` fornece o slot e o horário do bloco da última transação examinada, permitindo que você informe o progresso em históricos longos.

Uma varredura por uma instrução rara pode esgotar seu orçamento sem encontrar uma correspondência. Nesse caso, a resposta tem um array `data` vazio e ainda retorna um `paginationToken`. Portanto, continue examinando:

```json theme={"system"}
{
  "data": [],
  "paginationToken": "460903064:422",
  "scan": {
    "stoppedOn": "budget",
    "scannedTransactions": 2000,
    "matchedTransactions": 0,
    "scannedThrough": { "slot": 460903064, "blockTime": 1792856105 },
    "creditsCharged": 12
  }
}
```

Este loop continua examinando até esgotar o histórico:

```javascript scan-pumpfun-trades.js theme={"system"}
const API_KEY = process.env.HELIUS_API_KEY;

if (!API_KEY) {
  console.error("Missing HELIUS_API_KEY.");
  process.exit(1);
}

const URL = `https://mainnet.helius-rpc.com/v1/parsed-events/scan?api-key=${API_KEY}`;
const PUMP_PROGRAM = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P";

async function scan(paginationToken) {
  const response = await fetch(URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      address: PUMP_PROGRAM,
      match: {
        programs: [{ programId: PUMP_PROGRAM, instructions: ["buy", "sell"] }],
      },
      limit: 100,
      ...(paginationToken && { paginationToken }),
    }),
  });

  if (!response.ok) {
    throw new Error(`HTTP ${response.status}: ${await response.text()}`);
  }

  return response.json();
}

let paginationToken;

do {
  const page = await scan(paginationToken);

  for (const result of page.data) {
    console.log(result.signature, result.parsed?.slot);
  }

  console.log(
    `stopped on ${page.scan.stoppedOn}: scanned ${page.scan.scannedTransactions}, ` +
      `matched ${page.scan.matchedTransactions}, charged ${page.scan.creditsCharged} credits`
  );

  // Keep going while a token is returned, even when this page had no matches.
  paginationToken = page.paginationToken;
} while (paginationToken);
```

> [!TIP]
>
> Examine o endereço mais específico possível. Cada transação no histórico do endereço conta para o orçamento. Portanto, quanto menos transações não relacionadas um endereço tiver, mais correspondências cada solicitação encontrará.

## Créditos

Cada varredura custa **10 créditos mais 1 crédito por página do histórico examinada**. Uma página contém até 1.000 transações. Portanto, uma varredura com o orçamento padrão de 10.000 transações custa no máximo 20 créditos. Uma página interrompida pelo prazo não é examinada nem cobrada.

Cada resposta informa sua cobrança em `scan.creditsCharged`. Consulte [Créditos](https://www.helius.dev/docs/pt-BR/billing/credits.md) para ver os preços dos planos.

## Erros

| Status | Quando |
| - | - |
| `400` | O corpo é inválido ou contém campos desconhecidos; `match` não define `programs` nem `mints`; um programa ou uma emissão aparece mais de uma vez; um endereço ou uma emissão é inválido; um nome de instrução não está nas IDLs do programa; uma lista excede seu limite; `scope`, `returnShape`, `rawTransaction` ou `tokenAccounts` tem um valor desconhecido; `limit` está fora do intervalo de 1 a 100 com o formato `transactions`; ou `budget.maxScannedTransactions` está fora do intervalo de 1 a 10.000. |
| `500` | A solicitação falhou no servidor, por exemplo, porque uma transação armazenada no intervalo examinado não pôde ser decodificada. Nenhum resultado parcial é retornado. |
| `503` | O serviço está no limite da capacidade ou a primeira página do histórico não foi concluída antes do limite de tempo da solicitação. Tente fazer a solicitação novamente. |

Erros no nível da solicitação retornam um corpo JSON com uma mensagem `error`, como `{"error": "limit must be between 1 and 100"}`. Um corpo com um campo desconhecido, como `includeRawTransaction` (use `rawTransaction`), ou com `mints` como strings simples em vez de objetos `{ "mint": "..." }`, retorna `{"error": "invalid request payload"}`.

## Parâmetros da solicitação

**address** `string` *required*

Endereço cujo histórico será examinado.

**match** `object` *required*

O que uma transação deve corresponder. Defina `programs`, `mints` ou ambos. Quando ambos são definidos, uma transação deve corresponder aos dois.

**match.programs** `array`

Programas aos quais corresponder, no máximo 20, cada um no máximo uma vez. Uma transação corresponde quando contém uma instrução de qualquer um deles, de nível superior ou interna (CPI), dentro do `scope` do programa.

**match.programs\[].programId** `string` *required*

Endereço do programa.

**match.programs\[].instructions** `array`

Nomes de instruções de qualquer versão da IDL do programa, conforme escritos na IDL ou em snake\_case. No máximo 50. Pode ser combinado com `discriminators`.

**match.programs\[].discriminators** `array`

Prefixos dos dados da instrução, cada um com 1 a 8 bytes codificados em hexadecimal e um prefixo `0x` opcional. No máximo 50. Pode ser combinado com `instructions`.

**match.programs\[].scope** `string` (default: address)

Quais instruções do programa contam. `address` conta apenas instruções com uma conta que seja `address`, uma conta de token pertencente a `address` ou uma conta de token cuja emissão seja `address`, ou todas as instruções quando `address` é o programa. `transaction` conta qualquer instrução do programa na transação.

* `address`
* `transaction`

**match.mints** `array`

Emissões às quais corresponder, no máximo 20, cada uma no máximo uma vez. Uma transação corresponde quando um de seus saldos de tokens anterior ou posterior pertence a uma dessas emissões, dentro do `scope` da emissão.

**match.mints\[].mint** `string` *required*

Endereço de emissão do token. A emissão do SOL nativo `So11111111111111111111111111111111111111111` corresponde com base em alterações de lamports em vez de saldos de tokens, sem contar a taxa.

**match.mints\[].scope** `string` (default: address)

Quais saldos de tokens da emissão contam. `address` conta apenas saldos cuja conta de token seja `address` ou pertença a ela, ou cuja emissão seja `address`. Para SOL nativo, apenas alterações nos lamports de `address` contam. `transaction` conta qualquer saldo da emissão na transação. Para SOL nativo, uma alteração nos lamports de qualquer conta conta.

* `address`
* `transaction`

**returnShape** `string` (default: transactions)

O que a resposta contém para as correspondências: `transactions` (correspondências analisadas em `data`, até `limit`), `signatures` (`signature`, `slot`, `transactionIndex` e `blockTime` por correspondência em `data`) ou `count` (sem `data`; `scan.matchedTransactions` é o número de correspondências). `signatures` e `count` ignoram `limit` e `rawTransaction`.

* `transactions`
* `signatures`
* `count`

**limit** `number` (default: 100)

Número máximo de correspondências a retornar com o formato `transactions`, de 1 a 100.

**budget** `object`

Limites da quantidade de histórico que uma solicitação examina.

**budget.maxScannedTransactions** `number` (default: 10000)

Número máximo de transações a examinar nesta solicitação, de 1 a 10.000.

**beforeSignature** `string`

Examine transações anteriores a esta assinatura.

**afterSignature** `string`

Examine transações posteriores a esta assinatura.

**paginationToken** `string`

Cursor retornado por uma varredura anterior. O formato é `slot:transactionIndex`.

**sortOrder** `string` (default: desc)

Ordem na qual o histórico é examinado e as correspondências são retornadas.

* `asc`
* `desc`

**commitment** `string` (default: confirmed)

Nível de compromisso usado para buscar o histórico. `processed` não é compatível.

* `confirmed`
* `finalized`

**status** `string` (default: succeeded)

Resultado de execução a incluir. A filtragem ocorre antes da correspondência. Portanto, as transações excluídas não contam para o orçamento.

* `succeeded`
* `failed`
* `any`

**tokenAccounts** `string` (default: none)

Define se devem ser incluídas transações que referenciam apenas uma conta de token pertencente a `address`, mas não o próprio `address`: `none` as omite, `balanceChanged` inclui aquelas que alteram o saldo da conta de token e `all` inclui todas. Use `balanceChanged` ao examinar uma carteira por emissão.

* `none`
* `balanceChanged`
* `all`

**minContextSlot** `number`

Slot mínimo no qual a solicitação pode ser avaliada.

**rawTransaction** `string` (default: none)

Codificação da transação original da Solana retornada como `rawTransaction` em cada resultado bem-sucedido, no formato `getTransaction`. Aplica-se apenas ao formato `transactions`.

* `none`
* `json`
* `jsonParsed`
* `base64`

**slot** `object`

Limites de comparação de slots. Cada limite é opcional.

**slot.gt** `number`

Corresponde a valores maiores que este valor.

**slot.gte** `number`

Corresponde a valores maiores ou iguais a este valor.

**slot.lt** `number`

Corresponde a valores menores que este valor.

**slot.lte** `number`

Corresponde a valores menores ou iguais a este valor.

**time** `object`

Limites de comparação do horário do bloco em segundos Unix. Cada limite é opcional.

**time.gt** `number`

Corresponde a valores maiores que este valor.

**time.gte** `number`

Corresponde a valores maiores ou iguais a este valor.

**time.lt** `number`

Corresponde a valores menores que este valor.

**time.lte** `number`

Corresponde a valores menores ou iguais a este valor.


## OpenAPI

````yaml pt-BR/openapi/parsed-events.yaml POST /v1/parsed-events/scan
openapi: 3.0.3
info:
  title: Eventos Analisados
  version: 0.1.0
  description: >-
    Analise transações Solana e histórico de transações analisadas com Eventos
    Analisados.
servers:
  - url: https://mainnet.helius-rpc.com
security:
  - ApiKeyQuery: []
paths:
  /v1/parsed-events/scan:
    post:
      tags:
        - Eventos analisados
      summary: Verificar histórico de transações
      description: >-
        Pesquise no histórico de um endereço por transações que chamem um dos
        programas de um conjunto, interajam com uma das emissões de tokens de um
        conjunto ou ambos, e retorne as correspondências analisadas, suas
        assinaturas ou uma contagem.
      operationId: scanParsedTransactionHistory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScanRequest'
            examples:
              Pump.fun buys and sells:
                value:
                  address: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                  match:
                    programs:
                      - programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                        instructions:
                          - buy
                          - sell
                  limit: 1
              Rare instruction, budget stop:
                value:
                  address: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                  match:
                    programs:
                      - programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                        instructions:
                          - set_params
                  budget:
                    maxScannedTransactions: 2000
              Count matches:
                value:
                  address: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                  match:
                    programs:
                      - programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                        instructions:
                          - set_params
                  returnShape: count
                  budget:
                    maxScannedTransactions: 2000
              Token transactions with a USDC account:
                value:
                  address: <MINT_ADDRESS>
                  match:
                    mints:
                      - mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                        scope: transaction
                  returnShape: signatures
      responses:
        '200':
          description: >-
            As correspondências no `returnShape` solicitado e um resumo da
            verificação. Um resultado parcial ainda retorna 200; continue usando
            `paginationToken` enquanto ele for retornado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanPage'
              examples:
                Stopped on limit:
                  value:
                    data:
                      - signature: >-
                          5zmGhmd3JZxXzz8MnA8MM1K7PXRwA1z35n3xT6ZJGRz3sAi25p8jaZuPWFCB4nEPx7DUke9y3pwrd4V7xAFozQBy
                        parserStatus: OK
                        parsed:
                          slot: 460869102
                          blockTime: 1792848886
                          fee: 45000
                          feePayer: Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA
                          transactionStatus: OK
                          error: null
                          decodedError: null
                          nativeTransfers:
                            - fromUserAccount: BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                              toUserAccount: 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              amount: 4207183
                          tokenTransfers:
                            - fromUserAccount: 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              toUserAccount: BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                              fromTokenAccount: 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                              toTokenAccount: 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                              rawTokenAmount: 612181177082
                              decimals: 6
                              tokenStandard: Fungible
                              mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                          summary:
                            type: swap
                            description: >-
                              BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                              trocou 0.004207183 SOL por 612181.177082
                              3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump via
                              Pump.fun
                            parsedData:
                              type: swap
                              protocol: pump_fun
                              kind: buy
                              in_amount: '4207183'
                              actual_out_amount: '612181177082'
                              input_mint: So11111111111111111111111111111111111111112
                              output_mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                              inner_swaps: []
                          instructions:
                            - instructionIndex: 0
                              innerInstructionIndex: null
                              stackHeight: 1
                              programId: ComputeBudget111111111111111111111111111111
                              rawAccounts: []
                              rawData: HMypLP
                              summary: null
                              programName: compute_budget
                              instructionName: set_compute_unit_limit
                              decoded:
                                args:
                                  units: '400000'
                                accounts: []
                            - instructionIndex: 1
                              innerInstructionIndex: null
                              stackHeight: 1
                              programId: ComputeBudget111111111111111111111111111111
                              rawAccounts: []
                              rawData: 3gJqkocMWaMm
                              summary: null
                              programName: compute_budget
                              instructionName: set_compute_unit_price
                              decoded:
                                args:
                                  micro_lamports: '100000'
                                accounts: []
                            - instructionIndex: 2
                              innerInstructionIndex: null
                              stackHeight: 1
                              programId: MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e
                              rawAccounts:
                                - Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA
                                - 13ec7XdrjF3h3YcqBTFDSReRcUFwbCnJaAQspM4j6DDJ
                                - CNtxytSi1JNJgmBM444pGXK5eUEy5B2Q3haBHw2fzdoG
                                - 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                - 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                - BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                - '11111111111111111111111111111111'
                                - TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                - 4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                - GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                - 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                - HTGkqssCRhyE6rCBDDKQVqTM5LcFPwH8r7rmoMuvtKCD
                                - Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                                - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                                - Hq2wp8uJ9jCPsYgNHex8RtqdvMPfVGoYwjvF1ATiwn2Y
                                - FGFrX2q1iAjyAojjeyFDxXqdmvegjPpSWsrPmrJjeQ2f
                                - 8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                - pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                                - 8FoNgzmjuSmiy86EPCWxvv1q7oJSu2WGA7wPymwki2LJ
                                - MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e
                                - 6MneqwSEV63Ujx1KZX8ZDs5freLUyo61DoSdEeQCjNjk
                                - 5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD
                              rawData: 23s1EunhJwrvzz8YSBTPv5WDZGm8uym8KQXhF3u
                              summary: null
                              programName: null
                              instructionName: null
                              decoded: null
                            - instructionIndex: 2
                              innerInstructionIndex: 0
                              stackHeight: 2
                              programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                              rawAccounts:
                                - 4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf
                                - GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                - 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                - 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                - 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                - BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                - '11111111111111111111111111111111'
                                - TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                - HTGkqssCRhyE6rCBDDKQVqTM5LcFPwH8r7rmoMuvtKCD
                                - Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                                - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                                - Hq2wp8uJ9jCPsYgNHex8RtqdvMPfVGoYwjvF1ATiwn2Y
                                - FGFrX2q1iAjyAojjeyFDxXqdmvegjPpSWsrPmrJjeQ2f
                                - 8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                - pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                                - 6MneqwSEV63Ujx1KZX8ZDs5freLUyo61DoSdEeQCjNjk
                                - 5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD
                              rawData: i43WeUBGKA8F2B6dwt5RBzavSKrhGu93LB
                              summary:
                                type: swap
                                description: >-
                                  BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                  trocou 0.004207183 SOL por 612181.177082
                                  3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  via Pump.fun
                                parsedData:
                                  type: swap
                                  protocol: pump_fun
                                  kind: buy
                                  in_amount: '4207183'
                                  actual_out_amount: '612181177082'
                                  input_mint: So11111111111111111111111111111111111111112
                                  output_mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  inner_swaps: []
                              programName: pump
                              instructionName: buy
                              decoded:
                                args:
                                  amount: '612181177082'
                                  max_sol_cost: '4207183'
                                  track_volume:
                                    - false
                                accounts:
                                  - name: global
                                    pubkey: >-
                                      4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf
                                    isSigner: false
                                    isWritable: false
                                  - name: fee_recipient
                                    pubkey: >-
                                      GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                    isSigner: false
                                    isWritable: true
                                  - name: mint
                                    pubkey: >-
                                      3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                    isSigner: false
                                    isWritable: false
                                  - name: bonding_curve
                                    pubkey: >-
                                      2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                    isSigner: false
                                    isWritable: true
                                  - name: associated_bonding_curve
                                    pubkey: >-
                                      7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                    isSigner: false
                                    isWritable: true
                                  - name: associated_user
                                    pubkey: >-
                                      7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                    isSigner: false
                                    isWritable: true
                                  - name: user
                                    pubkey: >-
                                      BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                    isSigner: true
                                    isWritable: true
                                  - name: system_program
                                    pubkey: '11111111111111111111111111111111'
                                    isSigner: false
                                    isWritable: false
                                  - name: token_program
                                    pubkey: >-
                                      TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                    isSigner: false
                                    isWritable: false
                                  - name: creator_vault
                                    pubkey: >-
                                      HTGkqssCRhyE6rCBDDKQVqTM5LcFPwH8r7rmoMuvtKCD
                                    isSigner: false
                                    isWritable: true
                                  - name: event_authority
                                    pubkey: >-
                                      Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                                    isSigner: false
                                    isWritable: false
                                  - name: program
                                    pubkey: >-
                                      6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                                    isSigner: false
                                    isWritable: false
                                  - name: global_volume_accumulator
                                    pubkey: >-
                                      Hq2wp8uJ9jCPsYgNHex8RtqdvMPfVGoYwjvF1ATiwn2Y
                                    isSigner: false
                                    isWritable: false
                                  - name: user_volume_accumulator
                                    pubkey: >-
                                      FGFrX2q1iAjyAojjeyFDxXqdmvegjPpSWsrPmrJjeQ2f
                                    isSigner: false
                                    isWritable: true
                                  - name: fee_config
                                    pubkey: >-
                                      8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                    isSigner: false
                                    isWritable: false
                                  - name: fee_program
                                    pubkey: >-
                                      pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                                    isSigner: false
                                    isWritable: false
                                  - name: remainingAccount1
                                    pubkey: >-
                                      6MneqwSEV63Ujx1KZX8ZDs5freLUyo61DoSdEeQCjNjk
                                    isSigner: false
                                    isWritable: false
                                  - name: remainingAccount2
                                    pubkey: >-
                                      5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD
                                    isSigner: false
                                    isWritable: false
                            - instructionIndex: 2
                              innerInstructionIndex: 1
                              stackHeight: 3
                              programId: pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
                              rawAccounts:
                                - 8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt
                                - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                              rawData: >-
                                KX69VKtJ7u4E7dVvicNyuayxqa9Hr4EfndWiJBCjUyq1hDLtgcYW6pEh1tPqbHSkqHTQ8uiASv1QK1
                              summary: null
                              programName: pump_fees
                              instructionName: null
                              decoded: null
                            - instructionIndex: 2
                              innerInstructionIndex: 2
                              stackHeight: 3
                              programId: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                              rawAccounts:
                                - 7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                - 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                - 7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              rawData: jHqzogtBj1ey3
                              summary:
                                type: transfer
                                description: >-
                                  2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                  transferiu 612181.177082
                                  3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  de
                                  2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                  para
                                  BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                parsedData: null
                              programName: token_2022
                              instructionName: transfer_checked
                              decoded:
                                args:
                                  amount: '612181177082'
                                  decimals: 6
                                accounts:
                                  - name: source_account
                                    pubkey: >-
                                      7Rx6mmZ3jEWv94MZ5JtEqqw8PZTmVt2aFDxL678faSER
                                    isSigner: false
                                    isWritable: true
                                  - name: mint
                                    pubkey: >-
                                      3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                    isSigner: false
                                    isWritable: false
                                  - name: destination_account
                                    pubkey: >-
                                      7Y7x62ZQkzCLjuxw8iG5M2QZsayYeysRhfcY8pB5kbxQ
                                    isSigner: false
                                    isWritable: true
                                  - name: owner_or_delegate
                                    pubkey: >-
                                      2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                    isSigner: true
                                    isWritable: false
                            - instructionIndex: 2
                              innerInstructionIndex: 3
                              stackHeight: 3
                              programId: '11111111111111111111111111111111'
                              rawAccounts:
                                - BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                - 2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                              rawData: 3Bxs4E6xqUKPTjRy
                              summary:
                                type: transfer
                                description: >-
                                  BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                  transferiu 0.004207183 SOL para
                                  2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                parsedData: null
                              programName: system
                              instructionName: transfer
                              decoded:
                                args:
                                  lamports: '4207183'
                                accounts:
                                  - name: funding_account
                                    pubkey: >-
                                      BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                    isSigner: true
                                    isWritable: true
                                  - name: recipient_account
                                    pubkey: >-
                                      2meTvySZ7iVXzif1m3BAUj2RgwiDCpSMEW7yN3EAAY98
                                    isSigner: false
                                    isWritable: true
                            - instructionIndex: 2
                              innerInstructionIndex: 4
                              stackHeight: 3
                              programId: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
                              rawAccounts:
                                - Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1
                              rawData: >-
                                8jV3ThAnvn3jwQVVxYoxU8MvQQneX8ryEqnGqWTeKGi8UcTcTFd5VQ8KLpzRZhN2g6qpShcNYKQ6aEiZojgETaWrW1Mn92Drm2irNbjBdHGCTkuK3SBZb4HSn6KPZiJehmZL1aPNtVSRmGh2ojKXZLFtokDPK31XJJJZYBMowkVME4yWDsiA81AKAyJYq3afuYidCUgWsSfzSo8tZZRtCpSaeUd3M5JeyiE9V45vsDuPYsyBxmVFWf3qKWEcQuCDYu5HctwzvAeqU6Hmr1st5Kd62GrbHxua73RLuXpHotAjm3wYD6BkKEtKDpSnq47ewySqeUgF8MrTc121NwjKhedGJfp1VWv4TULoKaNTuA9KRzYVsTNgjYuwSgiXxQF2F1ePSHexBQdTiMbL1STcahdzuLvZoRkEUQX1WE9ayykQ1uiJ1FPFNCitKm6YwpLLLVwDDi8Rf2J5aeHxtLorKV5UWn1CnRukDpSJxAC91mmc6qNcJ6XQW5VxJMdhJcSSmSr1hi4dUt1vW6gspsMxEMUzGtiyBZeo
                              summary: null
                              programName: pump
                              instructionName: TradeEvent
                              decoded:
                                args:
                                  buyback_fee: '0'
                                  buyback_fee_basis_points: '0'
                                  cashback: '0'
                                  cashback_fee_basis_points: '0'
                                  creator: 2G5ZssGjViBdr4DdwYaQ23JQeNG8TRsrnHKs9pabUoCz
                                  creator_fee: '0'
                                  creator_fee_basis_points: '0'
                                  current_sol_volume: '0'
                                  fee: '0'
                                  fee_basis_points: '0'
                                  fee_recipient: GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS
                                  holder_rewards: '0'
                                  holder_rewards_bps: '0'
                                  is_buy: true
                                  ix_name: buy
                                  last_update_timestamp: '0'
                                  mayhem_mode: true
                                  mint: 3Wdb9NjzsMWFqnQZd21oQMyAc24ZgYZjqpF6NZdLpump
                                  quote_amount: '4207183'
                                  quote_mint: '11111111111111111111111111111111'
                                  real_quote_reserves: '27976582'
                                  real_sol_reserves: '27976582'
                                  real_token_reserves: '793353696151809'
                                  shareholders: []
                                  sol_amount: '4207183'
                                  timestamp: '1792848886'
                                  token_amount: '612181177082'
                                  total_claimed_tokens: '0'
                                  total_unclaimed_tokens: '0'
                                  track_volume: false
                                  user: BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s
                                  virtual_quote_reserves: '8676477109'
                                  virtual_sol_reserves: '8676477109'
                                  virtual_token_reserves: '1073253696151809'
                                accounts: []
                            - instructionIndex: 2
                              innerInstructionIndex: 5
                              stackHeight: 2
                              programId: MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e
                              rawAccounts:
                                - 8FoNgzmjuSmiy86EPCWxvv1q7oJSu2WGA7wPymwki2LJ
                              rawData: >-
                                HaAvdxyruSvtMDoMtGvePmYV4dda7tWKCLFHadQoSjYsbWWixs1eN1wCF27wUxZao1NfTPQGxhVs9GXmaVGUZ5mgBAEUUWKK4se3JtE5oKMHzxp6GRbR7wagdMtwKQEaJbXuMb9c75n3gPnTTFrxTjJrtBCejTAEQpd6mv9HUaxpt2u83Cts4WgXdvWqiHqk7xXkXQwV6M1VXmAfwZYg4CSjzAmooqqAdzbHuf243dbws8uDS4GrteXQiAYow3395wuNqLWzrcHropQTzvaDtpfAupYXEt2AZHPEuUsVhtt5n8xAieU5d4oHSjAvgBczW9cktco7Wto3kEo53QaJfbdEz4V9Jnx6ib2fdvW2EpLXUprJLcP9voTKAuuCZCTbQKSbwJWRG9UCPTssTDR3m9eE38WcqtK1v2jeRtbtK
                              summary: null
                              programName: null
                              instructionName: null
                              decoded: null
                    paginationToken: '460869102:203'
                    scan:
                      stoppedOn: limit
                      scannedTransactions: 1
                      matchedTransactions: 1
                      scannedThrough:
                        slot: 460869102
                        blockTime: 1792848886
                      creditsCharged: 11
                Stopped on budget, no matches:
                  value:
                    data: []
                    paginationToken: '460903064:422'
                    scan:
                      stoppedOn: budget
                      scannedTransactions: 2000
                      matchedTransactions: 0
                      scannedThrough:
                        slot: 460903064
                        blockTime: 1792856105
                      creditsCharged: 12
                Count shape:
                  value:
                    paginationToken: '460903064:422'
                    scan:
                      stoppedOn: budget
                      scannedTransactions: 2000
                      matchedTransactions: 0
                      scannedThrough:
                        slot: 460903064
                        blockTime: 1792856105
                      creditsCharged: 12
        '400':
          description: Solicitação inválida. A mensagem `error` identifica o problema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: >-
                      instruções de match.programs não encontradas nas IDLs de
                      6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P: not_a_real_ix
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          description: >-
            O serviço está no limite de capacidade ou a primeira página do
            histórico não foi concluída antes do prazo da solicitação. Tente a
            solicitação novamente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                default:
                  value:
                    error: serviço indisponível
components:
  schemas:
    ScanRequest:
      type: object
      description: >-
        Corpo da solicitação para verificar o histórico de um endereço em busca
        de transações correspondentes.
      required:
        - address
        - match
      additionalProperties: false
      properties:
        address:
          type: string
          description: Endereço cujo histórico é verificado.
        match:
          $ref: '#/components/schemas/ScanMatch'
        returnShape:
          type: string
          description: >-
            O que a resposta contém para as correspondências: `transactions`
            (correspondências analisadas em `data`, até `limit`), `signatures`
            (`signature`, `slot`, `transactionIndex` e `blockTime` por
            correspondência em `data`) ou `count` (sem `data`;
            `scan.matchedTransactions` é o número de correspondências).
            `signatures` e `count` ignoram `limit` e `rawTransaction`.
          enum:
            - transactions
            - signatures
            - count
          default: transactions
        limit:
          type: integer
          description: >-
            Número máximo de correspondências a retornar com o formato
            `transactions`, de 1 a 100.
          minimum: 1
          maximum: 100
          default: 100
        budget:
          $ref: '#/components/schemas/ScanBudget'
        beforeSignature:
          type: string
          description: Verifica transações anteriores a esta assinatura.
        afterSignature:
          type: string
          description: Verifica transações posteriores a esta assinatura.
        paginationToken:
          type: string
          description: >-
            Cursor retornado por uma verificação anterior. O formato é
            `slot:transactionIndex`.
        sortOrder:
          type: string
          description: >-
            Ordem na qual o histórico é verificado e as correspondências são
            retornadas.
          enum:
            - asc
            - desc
          default: desc
        commitment:
          type: string
          description: >-
            Nível de confirmação usado para buscar o histórico. `processed` não
            é compatível.
          enum:
            - confirmed
            - finalized
          default: confirmed
        status:
          type: string
          description: >-
            Resultado da execução a ser incluído. A filtragem ocorre antes da
            correspondência, portanto, as transações excluídas não são
            contabilizadas no orçamento.
          enum:
            - succeeded
            - failed
            - any
          default: succeeded
        tokenAccounts:
          allOf:
            - $ref: '#/components/schemas/TokenAccountsFilter'
          description: >-
            Indica se devem ser incluídas transações que referenciam apenas uma
            conta de token pertencente a `address`, e não o próprio `address`:
            `none` as exclui, `balanceChanged` inclui as que alteram o saldo da
            conta de token e `all` inclui todas. Use `balanceChanged` ao
            verificar uma carteira por emissão.
        minContextSlot:
          type: integer
          description: Slot mínimo no qual a solicitação pode ser avaliada.
        rawTransaction:
          allOf:
            - $ref: '#/components/schemas/RawTransactionEncoding'
          description: >-
            Codificação da transação original da Solana retornada como
            `rawTransaction` em cada resultado bem-sucedido, no formato de
            `getTransaction`. Aplica-se apenas ao formato `transactions`.
        slot:
          allOf:
            - $ref: '#/components/schemas/ComparisonBounds'
          description: Limites de comparação de slots. Cada limite é opcional.
        time:
          allOf:
            - $ref: '#/components/schemas/ComparisonBounds'
          description: >-
            Limites de comparação do horário do bloco em segundos Unix. Cada
            limite é opcional.
    ScanPage:
      type: object
      description: >-
        As correspondências no `returnShape` solicitado e um resumo da
        verificação.
      properties:
        data:
          description: >-
            As correspondências, em `sortOrder`. Com `transactions`, cada item
            tem o mesmo formato `TransactionResult` retornado por
            `/v1/parsed-events/transactions`; com `signatures`, cada item é um
            `ScanSignature`. Ausente com `count`. Pode estar vazio quando
            `paginationToken` está presente.
          oneOf:
            - type: array
              title: Transações
              items:
                $ref: '#/components/schemas/TransactionResult'
            - type: array
              title: Assinaturas
              items:
                $ref: '#/components/schemas/ScanSignature'
        paginationToken:
          type: string
          description: >-
            Cursor no qual a próxima verificação continua. Ausente quando a
            verificação chega ao fim do histórico ou da janela.
        scan:
          $ref: '#/components/schemas/ScanSummary'
    ErrorResponse:
      type: object
      description: Request-level error response.
      properties:
        error:
          type: string
          description: Error message.
    ScanMatch:
      type: object
      description: >-
        O que uma transação deve corresponder. Defina `programs`, `mints` ou
        ambos. Quando ambos são definidos, uma transação deve corresponder aos
        dois.
      additionalProperties: false
      properties:
        programs:
          type: array
          description: >-
            Programas para correspondência, no máximo 20, cada um apenas uma
            vez. Uma transação corresponde quando contém uma instrução de
            qualquer um deles, de nível superior ou interna (CPI), dentro do
            `scope` do programa.
          maxItems: 20
          items:
            $ref: '#/components/schemas/ScanProgramMatch'
        mints:
          type: array
          description: >-
            Emissões para correspondência, no máximo 20, cada uma apenas uma
            vez. Uma transação corresponde quando um de seus saldos de tokens
            anteriores ou posteriores pertence a uma dessas emissões, dentro do
            `scope` da emissão.
          maxItems: 20
          items:
            $ref: '#/components/schemas/ScanMintMatch'
    ScanBudget:
      type: object
      description: Limites da quantidade de histórico que uma solicitação verifica.
      additionalProperties: false
      properties:
        maxScannedTransactions:
          type: integer
          description: >-
            Número máximo de transações a verificar nesta solicitação, de 1 a
            10.000.
          minimum: 1
          maximum: 10000
          default: 10000
    TokenAccountsFilter:
      type: string
      description: >-
        Indica se devem ser incluídas transações que referenciam apenas uma
        conta de token pertencente a `address`, e não o próprio `address`:
        `none` as exclui, `balanceChanged` inclui as que alteram o saldo da
        conta de token e `all` inclui todas.
      enum:
        - none
        - balanceChanged
        - all
      default: none
    RawTransactionEncoding:
      type: string
      description: >-
        Codificação da transação original da Solana retornada como
        `rawTransaction` em cada resultado bem-sucedido, no formato de
        `getTransaction`. `none` não retorna a transação bruta.
      enum:
        - none
        - json
        - jsonParsed
        - base64
      default: none
    ComparisonBounds:
      type: object
      description: Numeric comparison bounds. Each field is optional.
      additionalProperties: false
      properties:
        gt:
          type: integer
          description: Match values greater than this value.
        gte:
          type: integer
          description: Match values greater than or equal to this value.
        lt:
          type: integer
          description: Match values less than this value.
        lte:
          type: integer
          description: Match values less than or equal to this value.
    TransactionResult:
      type: object
      description: Per-signature parser result.
      properties:
        signature:
          type: string
          description: Transaction signature for this item.
        parserStatus:
          type: string
          description: >-
            `OK` when parsing succeeded, or `ERROR` when the item failed to
            fetch or parse.
          enum:
            - OK
            - ERROR
        parsed:
          allOf:
            - $ref: '#/components/schemas/ParsedTransaction'
          description: Parsed transaction object. Present when `parserStatus` is `OK`.
        parserError:
          allOf:
            - $ref: '#/components/schemas/ParserError'
          description: Item-level error. Present when `parserStatus` is `ERROR`.
        rawTransaction:
          type: object
          description: >-
            Transação original da Solana no formato de `getTransaction` para a
            codificação `rawTransaction` solicitada. Com `base64`, `transaction`
            é `[data, "base64"]`. Presente apenas quando uma transação bruta é
            solicitada.
          additionalProperties: true
    ScanSignature:
      type: object
      description: >-
        Uma correspondência retornada com `returnShape` definido como
        `signatures`.
      properties:
        signature:
          type: string
          description: Assinatura da transação.
        slot:
          type: integer
          description: Slot que contém a transação.
        transactionIndex:
          type: integer
          description: Posição da transação em seu slot.
        blockTime:
          type: integer
          nullable: true
          description: Horário do bloco em segundos Unix, quando disponível.
    ScanSummary:
      type: object
      description: Até onde a verificação avançou e por que parou.
      properties:
        stoppedOn:
          type: string
          description: >-
            Por que a verificação parou: `windowEnd` (fim do histórico ou da
            janela), `limit` (retornou `limit` correspondências), `budget`
            (verificou `maxScannedTransactions`) ou `deadline` (atingiu o limite
            de tempo da solicitação).
          enum:
            - windowEnd
            - limit
            - budget
            - deadline
        scannedTransactions:
          type: integer
          description: Transações verificadas nesta solicitação.
        matchedTransactions:
          type: integer
          description: >-
            Correspondências encontradas nesta solicitação. Com `returnShape`
            definido como `count`, este é o resultado.
        scannedThrough:
          allOf:
            - $ref: '#/components/schemas/ScannedThrough'
          description: A última transação verificada. Ausente quando nada foi verificado.
        creditsCharged:
          type: integer
          description: >-
            Créditos cobrados: 10 por solicitação mais 1 por página de histórico
            verificada (até 1.000 transações cada).
    ScanProgramMatch:
      type: object
      description: >-
        Corresponde a transações com uma instrução de `programId`, de nível
        superior ou interna (CPI). Defina `instructions`, `discriminators` ou
        ambos para restringir a correspondência, ou nenhum deles para
        corresponder a qualquer instrução do programa.
      required:
        - programId
      additionalProperties: false
      properties:
        programId:
          type: string
          description: Endereço do programa.
        instructions:
          type: array
          description: >-
            Nomes de instruções de qualquer versão da IDL do programa, conforme
            escritos na IDL ou em snake_case. No máximo 50. Podem ser combinados
            com `discriminators`.
          maxItems: 50
          items:
            type: string
        discriminators:
          type: array
          description: >-
            Prefixos de dados de instrução, cada um com 1 a 8 bytes codificados
            em hexadecimal e um prefixo `0x` opcional. No máximo 50. Podem ser
            combinados com `instructions`.
          maxItems: 50
          items:
            type: string
        scope:
          allOf:
            - $ref: '#/components/schemas/MatchScope'
          description: >-
            Quais instruções do programa são contabilizadas. `address`
            contabiliza apenas instruções com uma conta que seja `address`, uma
            conta de token pertencente a `address` ou uma conta de token cuja
            emissão seja `address`, ou todas as instruções quando `address` é o
            programa. `transaction` contabiliza qualquer instrução do programa
            na transação.
    ScanMintMatch:
      type: object
      description: >-
        Corresponde a transações com um saldo de token anterior ou posterior de
        `mint`, dentro de `scope`. A emissão SOL nativa
        `So11111111111111111111111111111111111111111` corresponde a alterações
        em lamports, sem contabilizar a taxa cobrada do pagador da taxa.
      required:
        - mint
      additionalProperties: false
      properties:
        mint:
          type: string
          description: >-
            Endereço de emissão do token. A emissão SOL nativa
            `So11111111111111111111111111111111111111111` corresponde a
            alterações em lamports em vez de saldos de tokens, sem contabilizar
            a taxa.
        scope:
          allOf:
            - $ref: '#/components/schemas/MatchScope'
          description: >-
            Quais saldos de tokens da emissão são contabilizados. `address`
            contabiliza apenas saldos cuja conta de token seja `address` ou
            pertença a ele, ou cuja emissão seja `address`. Para SOL nativo,
            apenas alterações nos lamports de `address` são contabilizadas.
            `transaction` contabiliza qualquer saldo da emissão na transação.
            Para SOL nativo, uma alteração nos lamports de qualquer conta é
            contabilizada.
    ParsedTransaction:
      type: object
      description: Parser-v2 transaction model.
      properties:
        slot:
          type: integer
          description: Slot containing the transaction.
        blockTime:
          type: integer
          description: Unix timestamp for the block, when available.
          nullable: true
        fee:
          type: integer
          description: Transaction fee in lamports.
        feePayer:
          type: string
          description: Fee payer account, when available.
          nullable: true
        transactionStatus:
          type: string
          description: >-
            `OK` when the transaction executed successfully, or `ERROR` when
            execution failed.
          enum:
            - OK
            - ERROR
        nativeTransfers:
          type: array
          description: Transaction-level SOL transfers in lamports.
          items:
            $ref: '#/components/schemas/NativeTransfer'
        tokenTransfers:
          type: array
          description: Transaction-level SPL Token and Token-2022 transfers.
          items:
            $ref: '#/components/schemas/TokenTransfer'
        summary:
          allOf:
            - $ref: '#/components/schemas/ParsedSummary'
          description: Best transaction-level summary, when available.
          nullable: true
        instructions:
          type: array
          description: Parsed top-level and inner instructions in execution order.
          items:
            $ref: '#/components/schemas/ParsedInstruction'
    ParserError:
      type: object
      description: Item-level parser error.
      properties:
        code:
          type: string
          description: Machine-readable parser error code.
        message:
          type: string
          description: Human-readable parser error message.
    ScannedThrough:
      type: object
      description: Posição da última transação verificada.
      properties:
        slot:
          type: integer
          description: Slot da última transação verificada.
        blockTime:
          type: integer
          nullable: true
          description: Horário do bloco da última transação verificada, em segundos Unix.
    MatchScope:
      type: string
      description: >-
        Onde as instruções de um programa ou os saldos de tokens de uma emissão
        devem estar para serem contabilizados.
      enum:
        - address
        - transaction
      default: address
    NativeTransfer:
      type: object
      description: SOL movement detected at transaction level.
      properties:
        fromUserAccount:
          type: string
          description: Account sending lamports.
          nullable: true
        toUserAccount:
          type: string
          description: Account receiving lamports.
          nullable: true
        amount:
          type: integer
          description: Amount in lamports.
    TokenTransfer:
      type: object
      description: SPL Token or Token-2022 movement detected at transaction level.
      properties:
        fromUserAccount:
          type: string
          description: Owner or authority for the source side, when known.
          nullable: true
        toUserAccount:
          type: string
          description: Owner for the destination side, when known.
          nullable: true
        fromTokenAccount:
          type: string
          description: Source token account.
          nullable: true
        toTokenAccount:
          type: string
          description: Destination token account.
          nullable: true
        rawTokenAmount:
          type: integer
          description: Raw integer token amount.
        decimals:
          type: integer
          description: Mint decimals used to interpret the raw amount.
        tokenStandard:
          type: string
          description: Token standard when known, such as `Fungible` or `UnknownStandard`.
        mint:
          type: string
          description: Token mint address.
    ParsedSummary:
      type: object
      description: Human-readable summary for a transaction or instruction.
      properties:
        type:
          type: string
          description: Summary type, such as `swap`, `transfer`, or `create_account`.
        description:
          type: string
          description: Human-readable summary text.
        parsedData:
          type: object
          description: >-
            Structured payload behind the summary, when available — for example
            swap metadata with `protocol`, `kind`, amounts, and mints. The shape
            varies by summary type and protocol.
          nullable: true
          additionalProperties: true
    ParsedInstruction:
      type: object
      description: Parsed top-level or inner instruction.
      properties:
        instructionIndex:
          type: integer
          description: Índice de instrução de nível superior.
        innerInstructionIndex:
          type: integer
          description: >-
            Índice de instrução interna dentro da instrução de nível superior,
            quando aplicável.
          nullable: true
        stackHeight:
          type: integer
          description: Stack height when available.
          nullable: true
        programId:
          type: string
          description: Program ID that executed the instruction.
        rawAccounts:
          type: array
          description: Raw account pubkeys resolved from instruction account indexes.
          items:
            type: string
        rawData:
          type: string
          description: Raw instruction data.
        summary:
          allOf:
            - $ref: '#/components/schemas/ParsedSummary'
          description: Instruction-level summary, when available.
          nullable: true
        programName:
          type: string
          description: Parser-known program name, when available.
          nullable: true
        instructionName:
          type: string
          description: Decoded instruction name, when available.
          nullable: true
        decoded:
          allOf:
            - $ref: '#/components/schemas/DecodedInstruction'
          description: Decoded args and accounts, when decoding succeeds.
          nullable: true
    DecodedInstruction:
      type: object
      description: Decoded instruction args and named accounts.
      properties:
        args:
          type: object
          description: >-
            Decoded instruction arguments. Argument names and shapes depend on
            the instruction.
          additionalProperties: true
        accounts:
          type: array
          description: Decoded instruction accounts with parser-known names.
          items:
            $ref: '#/components/schemas/DecodedAccount'
    DecodedAccount:
      type: object
      description: Named account used by a decoded instruction.
      properties:
        name:
          type: string
          description: Parser-known account name.
        pubkey:
          type: string
          description: Account public key.
        isSigner:
          type: boolean
          description: Whether the account signed the transaction.
        isWritable:
          type: boolean
          description: Whether the account was writable for the instruction.
  responses:
    InternalError:
      description: >-
        A solicitação falhou no servidor, por exemplo, porque não foi possível
        decodificar uma transação armazenada no intervalo solicitado. A
        solicitação inteira falha; nenhum resultado parcial é retornado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            default:
              value:
                error: erro interno do servidor
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.