---
title: Removed RPC Methods
description:
  Migrate from JSON-RPC methods removed in Agave v2.0 to supported Solana RPC
  methods and response shapes.
url: /docs/rpc/deprecated
type: reference
related:
  - /docs/rpc/http
  - /docs/rpc/websocket
---

The JSON-RPC methods in this section were removed in Agave v2.0 and are not
available on current RPC nodes. Migrate calls instead of detecting a validator
version and falling back to these method names.

<Callout type="info">
  An SDK may still expose a similarly named convenience function. For example, a
  client-side `confirmTransaction` helper can use `getSignatureStatuses` and
  subscriptions internally. That helper is different from the removed
  `confirmTransaction` JSON-RPC method documented here.
</Callout>

## Migration Summary

| Removed method                                                                                | Supported replacement                                                   |
| --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [`confirmTransaction`](/docs/rpc/deprecated/confirmtransaction)                               | `getSignatureStatuses`; compare `confirmationStatus` and `err`          |
| [`getConfirmedBlock`](/docs/rpc/deprecated/getconfirmedblock)                                 | `getBlock` with `commitment: "confirmed"`                               |
| [`getConfirmedBlocks`](/docs/rpc/deprecated/getconfirmedblocks)                               | `getBlocks` with `commitment: "confirmed"`                              |
| [`getConfirmedBlocksWithLimit`](/docs/rpc/deprecated/getconfirmedblockswithlimit)             | `getBlocksWithLimit` with `commitment: "confirmed"`                     |
| [`getConfirmedSignaturesForAddress2`](/docs/rpc/deprecated/getconfirmedsignaturesforaddress2) | `getSignaturesForAddress`                                               |
| [`getConfirmedTransaction`](/docs/rpc/deprecated/getconfirmedtransaction)                     | `getTransaction` with `commitment: "confirmed"`                         |
| [`getFeeCalculatorForBlockhash`](/docs/rpc/deprecated/getfeecalculatorforblockhash)           | `isBlockhashValid` for validity; `getFeeForMessage` for cost            |
| [`getFeeRateGovernor`](/docs/rpc/deprecated/getfeerategovernor)                               | No direct replacement; use `getFeeForMessage` for a transaction message |
| [`getFees`](/docs/rpc/deprecated/getfees)                                                     | `getLatestBlockhash` plus `getFeeForMessage`                            |
| [`getRecentBlockhash`](/docs/rpc/deprecated/getrecentblockhash)                               | `getLatestBlockhash` plus `getFeeForMessage` when a fee is needed       |
| [`getSignatureConfirmation`](/docs/rpc/deprecated/getsignatureconfirmation)                   | `getSignatureStatuses`; read `confirmations` and `err`                  |
| [`getSignatureStatus`](/docs/rpc/deprecated/getsignaturestatus)                               | `getSignatureStatuses`; read the first result's `err`                   |
| [`getSnapshotSlot`](/docs/rpc/deprecated/getsnapshotslot)                                     | `getHighestSnapshotSlot`                                                |
| [`getStakeActivation`](/docs/rpc/deprecated/getstakeactivation)                               | Decode the stake account and derive activation from epoch data          |

The replacement signature-status method does not accept a commitment parameter.
When migrating a legacy call that did, compare the returned `confirmationStatus`
with the commitment your application requires. Treat the levels as ordered:
`processed` < `confirmed` < `finalized`.
