So the Algorand docs say that ASA IDs are unsigned 64-bit integers. But if I try to pass a BigInt to the makeAssetTransferTxnWithSuggestedParamsFromObject() function, I get the error “Asset index must be a positive number and smaller than 2^53-1”. If I just turn it into an Int instead, everything is fine.
The asset IDs returned from something like the Algoexplorer Indexer appear to be integers as well:
{
"asset": {
"created-at-round": 17183022,
"deleted": false,
"index": 393730434, // <------
"params": { ... }
},
"current-round": 18381128
}
When doing something like accountInformation() for a given wallet, I’ve got setIntDecoding(algosdk.IntDecoding.BIGINT) chained on there but everything is still returning an Int. Confirming with typeof accountInfo.assets[0]['asset-id'], for example, returns number.
Is this not a problem if an ASA ID is ever larger than 2.1 billion? Are they just assigned in ascending numerical order, in which case it won’t be a problem for a (little) while?
I’m jumping through all kinds of hoops to get GraphQL to try and support BigInt, but if it turns out they’re all just fine as Int's then I’ll undo all that junk! 
Thanks for any help!

