⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

payment_queryInfo - JSON-RPC Method

Description

Calculates the weight and partial fee that a given signed extrinsic would incur on Enjin Matrix. Call this endpoint before author_submitExtrinsic to display fee previews or to enforce wallet budgeting logic.

Parameters

ParameterTypeRequiredDescription
extrinsicstringYesSigned, SCALE-encoded extrinsic in hex
blockHashstring | nullNoBlock hash to evaluate against (default: best block)

Returns

FieldTypeDescription
weight.ref_timenumberExecution weight measured in picoseconds
weight.proof_sizenumberSize of storage proofs in bytes
classstringDispatch class (normal, operational, mandatory)
partialFeestringFee in plancks (18 decimals for ENJ)

Request Example

{
"jsonrpc": "2.0",
"method": "payment_queryInfo",
"params": [
"0x280403000b40c006a99901",
null
],
"id": 1
}

Response Example

{
"jsonrpc": "2.0",
"result": {
"weight": {
"ref_time": 162586000,
"proof_size": 1493
},
"class": "mandatory",
"partialFee": "0"
},
"id": 1
}

(The sample extrinsic is a system remark with zero fee; regular transfers will return a non-zero partialFee.)

Code Examples

cURL

curl https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "payment_queryInfo",
"params": ["0x280403000b40c006a99901", null],
"id": 1
}'
{
"jsonrpc": "2.0",
"result": {
"weight": {
"ref_time": 162586000,
"proof_size": 1493
},
"class": "mandatory",
"partialFee": "0"
},
"id": 1
}

The sample extrinsic is a system remark included in block 0x1873093eade39aa409f64537dd972c27156e4691fc0fda227a06d50c52ad5fef, so it reports a zero fee. Substitute your own signed payload to estimate fees for pending transactions.

JavaScript

const body = {
jsonrpc: '2.0',
method: 'payment_queryInfo',
params: ['0xSIGNED_EXTRINSIC', null],
id: 1
};

const info = await fetch('https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body)
}).then((res) => res.json());

console.log(info.result.partialFee);

Python

payload = {
"jsonrpc": "2.0",
"method": "payment_queryInfo",
"params": ["0xSIGNED_EXTRINSIC", None],
"id": 1,
}

info = requests.post(
"https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY",
headers={"Content-Type": "application/json"},
data=json.dumps(payload),
timeout=10,
).json()["result"]

print(info)

Tips

  • Use the returned weight to set tip values when prioritizing extrinsics.
  • When building transactions with fuel tanks, check if the partial fee is zero, indicating sponsorship.
  • Cache results per extrinsic payload if you queue multiple submissions of the same call.