algodClient.TransactionByID(TxID) method not existing on purestake?

Since update to v2 Purestake does not seem to have the method algodClient.TransactionByID(TxID) anymore?! Any suggestions?
I would like to avoid having to run an Archival node+indexer if that’s possible.


algod v2 API does not support this method anymore. You need to use the indexer v2 for that purpose (see Algorand Developer Docs for the REST call — all the SDK support this call).
Note that PureStake API allow for indexer v2 queries.

If you are running your own non-archival node, TransactionByID only worked for the last 1,000 blocks before anyways. You needed to have an archival node to be able to use it for earlier rounds. That is because non-archival nodes only keep the last 1,000 blocks.

I’ve posted an example using the PureStake’s API v2 for JavaScript here (api-examples/indexer_txn_search.js at master · PureStake/api-examples · GitHub).

If you are using a direct REST call outside the SDK there is both the txn search using parameters, GET v2/transactions?txid={{txId}} and a convenience endpoint GET v2/transactions/{{txId}}

Thanks Fabrice, thanks Tim!
In the end I solved it by creating an indexerClient, run the method SearchForTransactions and a map data := make(map[string][]map[string]interface{}) and then fishing out the “note” field where I store the information I need – in my case a Hash.

Question: How large are the sizes of respectively a Testnet Archival and MainNet Archival node? Point is that I run everything in the cloud where storage is costly. That’s why I’m using Purestake.


  • mainnet archival = 281GB
  • testnet archival = 205GB
  • mainnet+testnet indexer = 310G (I don’t have the split between the two…)

For mainnet + testnet archival at least, you cannot use HDD. You may not need the full performance of SSD though. For example, on GCP, you can use Balanced Persistent Disks.