# Wallet Configs (Coinbax Core API)

> Source: https://developers.coinbax.com/reference/coinbax-core/wallet-configs/
> Staging base URL: https://core-staging.coinbax.com/api/v1

Wallet provider configuration

## List external wallet configs

`GET /workspaces/{id}/external-wallet-configs`

- Auth: Bearer token
- Operation ID: `listExternalWalletConfigs`

Get all external wallet provider configurations for a workspace.
These configs determine which wallet providers (MetaMask, WalletConnect, etc.)
customers can use.

**Requires:** Workspace access

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Workspace ID |

### Example request

```bash
curl https://core-staging.coinbax.com/api/v1/workspaces/<id>/external-wallet-configs \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** External wallet configs retrieved successfully

```json
{
  "configs": [
    {
      "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "workspaceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "providerType": "METAMASK",
      "isEnabled": true,
      "allowedNetworks": [
        "BASE_SEPOLIA",
        "ETHEREUM_SEPOLIA"
      ],
      "allowedTemplateIds": [
        "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d"
      ],
      "config": {
        "infuraApiKey": "string",
        "projectId": "string",
        "appName": "string",
        "appLogoUrl": "string"
      },
      "createdAt": "2026-01-15T12:00:00.000Z",
      "updatedAt": "2026-01-15T12:00:00.000Z"
    }
  ]
}
```

**401** Unauthorized - missing or invalid authentication

**404** Resource not found

**500** Internal server error

---

## Get external wallet config

`GET /workspaces/{id}/external-wallet-configs/{type}`

- Auth: Bearer token
- Operation ID: `getExternalWalletConfig`

Get a specific external wallet config by provider type.

**Requires:** Workspace access

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Workspace ID |
| `type` | path | enum ("METAMASK", "WALLET_CONNECT", "COINBASE_WALLET", "LEDGER") | yes | External wallet provider type |

### Example request

```bash
curl https://core-staging.coinbax.com/api/v1/workspaces/<id>/external-wallet-configs/<type> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** External wallet config retrieved successfully

```json
{
  "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
  "workspaceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
  "providerType": "METAMASK",
  "isEnabled": true,
  "allowedNetworks": [
    "BASE_SEPOLIA",
    "ETHEREUM_SEPOLIA"
  ],
  "allowedTemplateIds": [
    "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d"
  ],
  "config": {
    "infuraApiKey": "string",
    "projectId": "string",
    "appName": "string",
    "appLogoUrl": "string"
  },
  "createdAt": "2026-01-15T12:00:00.000Z",
  "updatedAt": "2026-01-15T12:00:00.000Z"
}
```

**400** Bad request - validation error

**401** Unauthorized - missing or invalid authentication

**404** Resource not found

**500** Internal server error

---

## Create or update external wallet config

`PUT /workspaces/{id}/external-wallet-configs/{type}`

- Auth: Bearer token
- Operation ID: `updateExternalWalletConfig`

Create or update an external wallet provider configuration.

**Requires:** Workspace access

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Workspace ID |
| `type` | path | enum ("METAMASK", "WALLET_CONNECT", "COINBASE_WALLET", "LEDGER") | yes | External wallet provider type |

### Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `isEnabled` | boolean | no |  |
| `allowedNetworks` | array of string | no |  |
| `allowedTemplateIds` | array of string | no |  |
| `config` | object | no |  |

```json
{
  "isEnabled": true,
  "allowedNetworks": [
    "BASE_SEPOLIA",
    "ETHEREUM_SEPOLIA"
  ],
  "config": {
    "projectId": "your_wallet_connect_project_id"
  }
}
```

### Example request

```bash
curl -X PUT https://core-staging.coinbax.com/api/v1/workspaces/<id>/external-wallet-configs/<type> \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "isEnabled": true,
  "allowedNetworks": [
    "BASE_SEPOLIA",
    "ETHEREUM_SEPOLIA"
  ],
  "config": {
    "projectId": "your_wallet_connect_project_id"
  }
}'
```

### Responses

**200** External wallet config updated successfully

```json
{
  "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
  "workspaceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
  "providerType": "METAMASK",
  "isEnabled": true,
  "allowedNetworks": [
    "BASE_SEPOLIA",
    "ETHEREUM_SEPOLIA"
  ],
  "allowedTemplateIds": [
    "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d"
  ],
  "config": {
    "infuraApiKey": "string",
    "projectId": "string",
    "appName": "string",
    "appLogoUrl": "string"
  },
  "createdAt": "2026-01-15T12:00:00.000Z",
  "updatedAt": "2026-01-15T12:00:00.000Z"
}
```

**400** Bad request - validation error

**401** Unauthorized - missing or invalid authentication

**404** Resource not found

**500** Internal server error

---

## Delete external wallet config

`DELETE /workspaces/{id}/external-wallet-configs/{type}`

- Auth: Bearer token
- Operation ID: `deleteExternalWalletConfig`

Delete an external wallet provider configuration.

**Requires:** Workspace access

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Workspace ID |
| `type` | path | enum ("METAMASK", "WALLET_CONNECT", "COINBASE_WALLET", "LEDGER") | yes | External wallet provider type |

### Example request

```bash
curl -X DELETE https://core-staging.coinbax.com/api/v1/workspaces/<id>/external-wallet-configs/<type> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

### Responses

**200** External wallet config deleted successfully

```json
{
  "message": "Config deleted successfully"
}
```

**400** Bad request - validation error

**401** Unauthorized - missing or invalid authentication

**404** Resource not found

**500** Internal server error
