# Create a Gas Station Funding Wallet

The wallet that pays your policies' top-ups on one chain. Its key is made in Aurea's hardware security modules and never exported.

## Overview

- `chain`: an EVM chain's slug the Gas Station serves, with `isTestnet` (default `false`) — [Gas Station](https://docs.aureahub.com/docs/guide-gas-station.md) › Chains. Any other: `400` `GAS_STATION_CHAIN_NOT_SUPPORTED`.
- **One per chain and network**: a second answers `409` `GAS_STATION_FUNDING_WALLET_EXISTS`. No route removes or replaces one.
- **A key of its own**, made for it in Aurea's hardware security modules — `custodyTier` `institutional` where your tenant's custody tier is institutional, else `premium` — and never exported: Aurea keeps its address and a reference to the key. When the key store cannot make it: `503` `WALLET_KEY_STORE_NOT_CONFIGURED` or `WALLET_KEY_STORE_UNAVAILABLE`, and nothing is made.
- `201` with the funding wallet, `nativeBalance` `null`: fund its `address`, then read its balance with [List Funding Wallets](https://docs.aureahub.com/docs/gas-station-funding-wallets.md).
- For `owner`, `tenantadmin` and `non_signing_admin`, on their own tenant. A covered action of your tenant's quorum — `gas_station.funding_wallet.create_own` on this route —; a call the route would refuse (a chain it does not serve, a funding wallet that exists) is answered at once, never held. Written to your audit trail [Coming soon, upon request](https://docs.aureahub.com/docs/feature-availability.md), as `gas_station.funding_wallet.created`.

> Note: **Your tenant's quorum** [Coming soon, upon request](https://docs.aureahub.com/docs/feature-availability.md) — where it holds administrators' actions (a tenant on the institutional security profile by its profile; every other tenant's records them only): this call answers `202` `{ "state": "awaiting_quorum", "requestId" }` — the **202** tab below — and nothing is done until another administrator of your tenant approves it; the answer it would have given is then read once by who asked ([Read the Answer](https://docs.aureahub.com/docs/quorum-request-result.md)). With no other administrator able to approve it, it is done at once. [Your Tenant's Quorum](https://docs.aureahub.com/docs/guide-tenant-quorum.md). Every other tenant gets the answers below, unchanged.

## Endpoint

### `POST /v1/gas-station/funding-wallets`

Authentication: bearer token required.

Makes your tenant's Gas Station funding wallet on one chain and network.

**Request body**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `chain` | string | yes | An EVM chain's slug, e.g. `base` |
| `isTestnet` | boolean | no | Its testnet; default `false` |

**Responses**

`201` Created

```json
{
  "id": "2d9f4a6c-8e1b-4c73-a5d0-7b3e9f1c6a28",
  "scope": "tenant",
  "chain": "base",
  "isTestnet": false,
  "chainId": 8453,
  "address": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
  "custodyTier": "premium",
  "nativeBalance": null,
  "createdAt": "2026-10-14T09:31:52.064Z"
}
```

`202` Awaiting quorum

```json
{
  "state": "awaiting_quorum",
  "requestId": "4e2b9c17-8a3d-4f60-b5e1-7c9d0a2f6b38"
}
```

`409` Exists

```json
{
  "statusCode": 409,
  "error": "ConflictError",
  "message": "This tenant has a Gas Station funding wallet on this chain already",
  "details": { "code": "GAS_STATION_FUNDING_WALLET_EXISTS" }
}
```

`503` Key store

```json
{
  "statusCode": 503,
  "error": "ServiceUnavailableError",
  "message": "The key store did not answer, so the wallet was not created. Try again later.",
  "details": { "code": "WALLET_KEY_STORE_UNAVAILABLE" }
}
```

**Example request**

```bash
curl -X POST https://api.aureahub.com/v1/gas-station/funding-wallets \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "chain": "base" }'
```

## By Tenant Id

The same, with your tenant's id, for the same roles; another tenant's id answers `403`. Its quorum action is `gas_station.funding_wallet.create`.

### `POST /v1/admin/tenants/{id}/gas-station/funding-wallets`

Authentication: bearer token required.

Makes a tenant's Gas Station funding wallet on one chain and network.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | yes | Your tenant's id |

**Request body**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `chain` | string | yes | An EVM chain's slug, e.g. `base` |
| `isTestnet` | boolean | no | Its testnet; default `false` |

**Responses**

`202` Awaiting quorum

```json
{
  "state": "awaiting_quorum",
  "requestId": "4e2b9c17-8a3d-4f60-b5e1-7c9d0a2f6b38"
}
```

`403` Another tenant

```json
{ "statusCode": 403, "error": "ForbiddenError", "message": "Admin access required or you can only access your own tenant." }
```

---

Web version: https://docs.aureahub.com/#gas-station-funding-wallet-create
