# List Proven Addresses

The addresses outside Aurea that the user proved in one environment and still holds.

## Overview

- `isTestnet=true` lists the sandbox addresses; `false` or omitted, the production ones. The oldest proof comes first.
- Revoked addresses are not listed ([Revoke an Address](https://docs.aureahub.com/docs/bank-address-revoke.md)).
- Answers whatever your tenant's settings, so a user always sees what they proved, also after the standalone mode is switched off. Pay-ins are delivered to these addresses only while the mode is on ([Initiate Deposit](https://docs.aureahub.com/docs/payin-initiate.md)).
- Answers `403` to a token without a tenant, and when your tenant does not use the bank ramp. It answers from Aurea's records.

## Endpoint

### `GET /v1/ramp/bank/addresses`

Authentication: bearer token required.

Returns the addresses the user proved in one environment and has not revoked.

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `isTestnet` | boolean | no | `true` for the sandbox; `false` or omitted for production. Any other value returns `400`. |

**Responses**

`200` OK

```json
{
  "environment": "sandbox",
  "addresses": [
    {
      "id": "7a1d3c5e-9b2f-4e6a-8c0d-1f3b5d7e9a2c",
      "family": "evm",
      "address": "0xC0207704CaEB9342cf491Ad4a177F43592df65a7",
      "label": "Hardware wallet",
      "proof": "eip191",
      "environment": "sandbox",
      "verifiedAt": "2026-09-16T10:02:41.000Z"
    },
    {
      "id": "2e4a6c8d-0b1f-4d3a-9e5c-7b9d1f3a5c7e",
      "family": "solana",
      "address": "91hjEa6yT8ZANwdM3phDi1CSxEouHpveu5WDwyhmAc7b",
      "label": null,
      "proof": "solana_ed25519",
      "environment": "sandbox",
      "verifiedAt": "2026-09-16T11:15:03.000Z"
    }
  ]
}
```

`403` No tenant

```json
{
  "statusCode": 403,
  "error": "ForbiddenError",
  "message": "This request needs a tenant: an admin token without one holds no addresses."
}
```

## Implementation

```javascript
// The proven addresses a pay-in on this network may be delivered to
async function provenAddressesFor(token, pair, isTestnet) {
  const res = await fetch(`https://api.aureahub.com/v1/ramp/bank/addresses?isTestnet=${isTestnet}`, {
    headers: { Authorization: `Bearer ${token}` }
  });
  const data = await res.json();
  if (!res.ok) throw new Error(data.message);

  // pair comes from Tenant Settings: addressFormat is evm or solana
  return data.addresses.filter((address) => address.family === pair.addressFormat);
}
```

---

Web version: https://docs.aureahub.com/#bank-addresses-list
