Describe the bug
The transfers array is empty or incomplete for batch transactions (multiSend) on Berachain/Unichain/Scroll/... networks, while the same type of transactions on Sepolia return correct transfer data. This affects native token transfers in batch transactions - they are not being indexed/returned properly by the transaction service.
To Reproduce
Steps to reproduce the behavior on Berachain as example:
- Execute a batch transaction with 2 native transfers
- Transaction hash:
0x5a5d0d87d5af93bfe2d14ae3abc4c0f6b9307056e7241f936ee1d0a118120492
- Safe address:
0xa62d8547498972cc312a3f391a3d35debD65BC4b
- GET request to fetch transaction details:
GET https://api.safe.global/tx-service/berachain/api/v2/safes/0xa62d8547498972cc312a3f391a3d35debD65BC4b/all-transactions/
- Observed result:
The transfers array is empty [] despite the transaction containing 2 native token transfers (visible in dataDecoded.parameters[0].valueDecoded)
- Compare with identical transaction on Sepolia
- Additional test case - Mixed batch (1 native + 1 ERC20) on Berachain:
- Transaction hash:
0x25fbef9d4d564000848b84691009b3620eb9da7a4ed9ab72a4fe386685f90882
- Result: Only the ERC20 transfer is present in the
transfers array, native transfer is missing
Expected behavior
The transfers array should contain all transfers that occurred during the transaction, including:
- Native token transfers (ETHER_TRANSFER type)
- ERC20 token transfers (ERC20_TRANSFER type)
For a batch transaction with 2 native transfers, the response should include:
"transfers": [
{
"type": "ETHER_TRANSFER",
"executionDate": "2026-01-19T14:14:06Z",
"blockNumber": 15908665,
"transactionHash": "0x5a5d...",
"to": "0x3B747C372C2088963ABc2194B7D5ADe238965b33",
"value": "100000000000000",
"tokenId": null,
"tokenAddress": null,
"transferId": "...",
"tokenInfo": null,
"from": "0xa62d8547498972cc312a3f391a3d35debD65BC4b"
},
{
"type": "ETHER_TRANSFER",
"executionDate": "2026-01-19T14:14:06Z",
"blockNumber": 15908665,
"transactionHash": "0x5a5d...",
"to": "0x3B747C372C2088963ABc2194B7D5ADe238965b33",
"value": "100000000000000",
"tokenId": null,
"tokenAddress": null,
"transferId": "...",
"tokenInfo": null,
"from": "0xa62d8547498972cc312a3f391a3d35debD65BC4b"
}
Environment (please complete the following information):
- Staging or production? Production
- Which chain? Berachain (chain ID: 80094)
- OS: macOS
- Browser: Chrome
- API endpoint:
https://api.safe.global/tx-service/berachain/api/v2/safes/0xa62d8547498972cc312a3f391a3d35debD65BC4b/all-transactions/
Additional context
- The Safe Web UI correctly displays the transfers, suggesting the issue is specific to the transaction service indexing/processing
- The
dataDecoded field correctly shows the transfers in the valueDecoded array
- This issue is described on Berachain, but also might be reproducible on plenty of networks (e.g. Scroll, safe: 0x53EE9A3B8fb3dFa69a71E656965fBCB9BD6FE45c, txHash: 0xed2f095a88518625a0048a96d68e58122d66de8c894e0014c1e9836dc5a448ac, Unichain)
- Both scenarios tested:
- Batch with only native transfers → completely empty
transfers array
- Batch with native + ERC20 transfers → only ERC20 transfer indexed, native transfer missing
- The issue suggests that native transfer indexing may not be working properly in the transaction service
Describe the bug
The
transfersarray is empty or incomplete for batch transactions (multiSend) on Berachain/Unichain/Scroll/... networks, while the same type of transactions on Sepolia return correct transfer data. This affects native token transfers in batch transactions - they are not being indexed/returned properly by the transaction service.To Reproduce
Steps to reproduce the behavior on Berachain as example:
0x5a5d0d87d5af93bfe2d14ae3abc4c0f6b9307056e7241f936ee1d0a1181204920xa62d8547498972cc312a3f391a3d35debD65BC4bGET https://api.safe.global/tx-service/berachain/api/v2/safes/0xa62d8547498972cc312a3f391a3d35debD65BC4b/all-transactions/
The
transfersarray is empty[]despite the transaction containing 2 native token transfers (visible indataDecoded.parameters[0].valueDecoded)0x7943138c1e5f5f6cfbaa520b2608eccf99d59d882667af70d3377b2a78239c4a0x0Eb07A53d19f968924f7EFE446E37b77875F1f44transfersarray correctly contains 2ETHER_TRANSFERentries0x25fbef9d4d564000848b84691009b3620eb9da7a4ed9ab72a4fe386685f90882transfersarray, native transfer is missingExpected behavior
The
transfersarray should contain all transfers that occurred during the transaction, including:For a batch transaction with 2 native transfers, the response should include:
"transfers": [
{
"type": "ETHER_TRANSFER",
"executionDate": "2026-01-19T14:14:06Z",
"blockNumber": 15908665,
"transactionHash": "0x5a5d...",
"to": "0x3B747C372C2088963ABc2194B7D5ADe238965b33",
"value": "100000000000000",
"tokenId": null,
"tokenAddress": null,
"transferId": "...",
"tokenInfo": null,
"from": "0xa62d8547498972cc312a3f391a3d35debD65BC4b"
},
{
"type": "ETHER_TRANSFER",
"executionDate": "2026-01-19T14:14:06Z",
"blockNumber": 15908665,
"transactionHash": "0x5a5d...",
"to": "0x3B747C372C2088963ABc2194B7D5ADe238965b33",
"value": "100000000000000",
"tokenId": null,
"tokenAddress": null,
"transferId": "...",
"tokenInfo": null,
"from": "0xa62d8547498972cc312a3f391a3d35debD65BC4b"
}
Environment (please complete the following information):
https://api.safe.global/tx-service/berachain/api/v2/safes/0xa62d8547498972cc312a3f391a3d35debD65BC4b/all-transactions/Additional context
dataDecodedfield correctly shows the transfers in thevalueDecodedarraytransfersarray