Skip to content

Native transfers are not detected in 'all-transactions' endpoint for batch transactions #2764

Description

@Emosaddd

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:

  1. Execute a batch transaction with 2 native transfers
    • Transaction hash: 0x5a5d0d87d5af93bfe2d14ae3abc4c0f6b9307056e7241f936ee1d0a118120492
    • Safe address: 0xa62d8547498972cc312a3f391a3d35debD65BC4b
  2. GET request to fetch transaction details:
    GET https://api.safe.global/tx-service/berachain/api/v2/safes/0xa62d8547498972cc312a3f391a3d35debD65BC4b/all-transactions/
  3. Observed result:
    The transfers array is empty [] despite the transaction containing 2 native token transfers (visible in dataDecoded.parameters[0].valueDecoded)
  4. Compare with identical transaction on Sepolia
  5. 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
Image Image
  • 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:
    1. Batch with only native transfers → completely empty transfers array
    2. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions