testmempoolaccept - Bitcoin
Example code for the testmempoolaccept JSON-RPC method. Complete guide on how to use testmempoolaccept JSON-RPC in GetBlock Web3 documentation.
This method checks whether one or more raw transactions would be accepted into the mempool, without broadcasting them. It is used to validate a transaction before sending it.
Parameters
rawtxs
array
Yes
Raw transactions as hex strings (currently one at a time)
maxfeerate
number or string
No
Reject if the fee rate exceeds this value (default: 0.10 BTC/kvB)
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": "testmempoolaccept",
"params": [["0200000001a1b2c3d4e5f6...0000000000"]],
"id": "getblock.io"
}'const axios = require('axios');
const response = await axios.post('https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/', {
jsonrpc: '2.0',
method: 'testmempoolaccept',
params: [["0200000001a1b2c3d4e5f6...0000000000"]],
id: 'getblock.io'
}, {
headers: { 'Content-Type': 'application/json' }
});
console.log(response.data.result);import requests
response = requests.post(
'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/',
headers={'Content-Type': 'application/json'},
json={
'jsonrpc': '2.0',
'method': 'testmempoolaccept',
'params': [["0200000001a1b2c3d4e5f6...0000000000"]],
'id': 'getblock.io'
}
)
print(response.json())Response
{
"jsonrpc": "2.0",
"id": "getblock.io",
"result": [
{
"txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"wtxid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"allowed": true,
"vsize": 141,
"fees": {
"base": 2.82e-05,
"effective-feerate": 0.0002,
"effective-includes": [
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
]
}
}
]
}Response Parameters
jsonrpc
string
JSON-RPC protocol version ("2.0")
id
string
Request identifier matching the request
result
array
Array with one acceptance result per transaction
Array Item
txid
string
The transaction ID
allowed
boolean
Whether the transaction would be accepted
vsize
number
Virtual size if allowed
reject-reason
string
Reason for rejection, present when not allowed
Use Cases
Pre-Flight Checks: Validate a transaction before broadcasting
Fee Validation: Confirm the fee rate is acceptable
Wallet UX: Warn users of likely rejection
Automation: Gate broadcasts on acceptance
Error Handling
403
Forbidden
Missing or invalid ACCESS-TOKEN
-8
Invalid parameter
A parameter is out of range or malformed
-32601
Method not found
The method is not available on this endpoint
-32602
Invalid params
A parameter is missing or has the wrong type
Last updated
Was this helpful?