For the complete documentation index, see llms.txt. This page is also available as Markdown.

getFeeForMessage - Solana

Example code for the getFeeForMessage JSON-RPC method. Complete guide on how to use the getFeeForMessage JSON-RPC method in the GetBlock Web3 documentation.

This method returns the fee the cluster would charge to process a base64-encoded transaction message. Fees are quoted against a specific blockhash and expire with it.

Parameters

Parameter
Type
Required
Description

message

string

Yes

Base64-encoded transaction message

config

object

No

Configuration object controlling commitment

Config Object

Field
Type
Required
Description

commitment

string

No

Commitment level: processed, confirmed, or finalized. Defaults to finalized

minContextSlot

number

No

Minimum slot the request can be evaluated at

Request

curl --location --request POST 'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "getFeeForMessage",
    "params": ["AQABAgIAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA", {"commitment": "processed"}],
    "id": "getblock.io"
}'
example.js
const { Connection } = require('@solana/web3.js');

const connection = new Connection('https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/', 'processed');

const { value: fee } = await connection.getFeeForMessage(
  transaction.compileMessage()
);

console.log(fee, 'lamports');
example.py
import requests

response = requests.post(
    'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/',
    headers={'Content-Type': 'application/json'},
    json={
        'jsonrpc': '2.0',
        'method': 'getFeeForMessage',
        'params': ["AQABAgIAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA", {"commitment": "processed"}],
        'id': 'getblock.io'
    }
)

print(response.json()['result'])

Response

Response Parameters

Parameter
Type
Description

jsonrpc

string

JSON-RPC protocol version ("2.0")

id

string

Request identifier matching the request

result

object

RPC response object where value is the fee in lamports, or null if the blockhash has expired

Use Cases

  • Fee Quotes: Show the exact lamport cost before a user signs a transaction

  • Batch Sizing: Compare fees across different instruction counts in one message

  • Fee Payer Checks: Confirm the fee payer balance covers the quoted amount

  • Blockhash Expiry: Detect a stale blockhash when the response value is null

Error Handling

Error Code
Message
Description

-32602

Invalid params

Message is not valid base64 or cannot be deserialized

-32603

Internal error

Node failed to compute the fee for the message

-32016

Minimum context slot has not been reached

The node has not yet processed minContextSlot

Last updated

Was this helpful?