IBExWalletAPI

User's wallet addresses

Return wallet addresses for the signer that authenticated the current JWT session, across all deployed chains, with Safe module status per chain.

Signer filtering (sid JWT claim):

  • The JWT contains a sid claim identifying the signer (passkey / EOA) used to authenticate.
  • Only safes belonging to that signer are returned — not all signers of the user.
  • If the JWT was issued before sid support (no signer claim), the endpoint falls back to returning all signers' safes.

Multi-chain support:

  • Each safe address can be deployed on multiple chains. The chainIds array lists every chain ID, sorted numerically.
  • The chains array provides per-chain details including activated Safe modules (recovery, automation/allowance).

Optional derived wallet enrichment (includeDerived=true):

  • Adds wallets[].derived.perSafe: per-family derived addresses for this Safe.
  • Adds wallets[].derived.global.eoaAddresses: signer-global derived addresses (without WALLET_TYPE_SIGNIN filtering).

Modules:

  • recovery — Social recovery module (guardians can recover the wallet).
  • automation — Allowance/automation module (scheduled transfers, DCA, etc.).
  • Modules are only included in the response when they are activated on that chain.

Response example (200):

{
  "rpId": "ibex.fi",
  "signerId": "AVZs0qRCBSmfThZWu37g...",
  "count": 1,
  "wallets": [
    {
      "safeAddress": "0xd676c6...A679",
      "chainIds": [100, 421614],
      "threshold": 1,
      "chains": [
        { "chainId": 100 },
        {
          "chainId": 421614,
          "modules": {
            "recovery": { "enabled": true, "moduleAddress": "0xRecov..." },
            "automation": {
              "enabled": true,
              "moduleAddress": "0xAllow...",
              "targetAddress": "0xDest...",
              "percentage": 25,
              "frequency": "DAILY",
              "tokenAddress": "0xUSDC..."
            }
          }
        }
      ],
      "createdAt": "2025-01-15T10:30:00.000Z",
      "updatedAt": "2025-03-20T14:00:00.000Z",
      "primary": true
    }
  ]
}
GET
/v1.2/users/me/address

Authorization

AuthorizationRequiredBearer <token>

In: header

Query Parameters

includeDerivedboolean

When true, adds per-safe and signer-global derived wallet addresses.

curl -X GET "https://passkeys-testnet.ibex.fi/v1.2/users/me/address?includeDerived=true" \
  -H "Authorization: Bearer <token>"

Default Response

{
  "rpId": "string",
  "externalUserId": "string",
  "signerId": "string",
  "count": 0,
  "wallets": [
    {
      "safeAddress": "string",
      "chainIds": [
        0
      ],
      "threshold": 0,
      "chains": [
        {
          "chainId": 0,
          "modules": {
            "recovery": {
              "enabled": true,
              "moduleAddress": "string"
            },
            "automation": {
              "enabled": true,
              "moduleAddress": "string",
              "targetAddress": "string",
              "transferMode": "string",
              "percentage": 0,
              "fixedAmount": "string",
              "maxWalletPercentage": 0,
              "minIntervalMinutes": 0,
              "periodCapAmount": "string",
              "periodCapMinutes": 0,
              "frequency": "string",
              "tokenAddress": "string"
            }
          }
        }
      ],
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z",
      "primary": true,
      "derived": {
        "perSafe": {
          "property1": [
            "string"
          ],
          "property2": [
            "string"
          ]
        },
        "global": {
          "eoaAddresses": [
            {
              "type": "string",
              "address": "string"
            }
          ]
        }
      }
    }
  ]
}