---
updatedAt: 2026-08-16T03:03:46.000Z
agentTools:
  projectIndex: https://docs.wirexapp.com/llms.txt
---

# Credentials

API credentials, on-chain identifiers, and the smart contracts used by the Corporate API.

## Before You Start

Read the following guides before proceeding:

| Guide                                            | Why                                    |
| ------------------------------------------------ | -------------------------------------- |
| [Getting Started](https://docs.wirexapp.com/docs/corporate-getting-started) | Integration overview and prerequisites |
| [Environments](https://docs.wirexapp.com/docs/corporate-environments)       | Base URLs and chain configuration      |

***

## API Credentials

Wirex provides the following credentials per environment:

| Credential      | Format | Purpose                                         |
| --------------- | ------ | ----------------------------------------------- |
| `client_id`     | String | Identifies your company on `POST /api/v1/token` |
| `client_secret` | String | Secret used in the client-credentials exchange  |

> **Your company must be registered as a corporate company.** A `client_id` registered as a retail
> company is refused by `POST /api/v1/token` with `500` and the message
> `You're in the wrong place. Please go to retail api with this kind of requests.` A `client_id` with no
> secret configured is refused with `401 ErrorPermissionDenied` and
> `Client credentials access is not enabled for this account`.

***

## On-Chain Identifier

| Credential   | Format                  | Purpose                                                                                                                                                                   |
| ------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `partner_id` | 16-byte hex (`bytes16`) | The `parentEntity` argument to `createCorporationForCorporateWallet` in the `CorporateAccounts` contract, and the first 16 bytes of the `CorporateValidator` install data |

The `partner_id` scopes every on-chain corporation, employee and role record to your partner entity.
Two partners can register the same wallet address independently — the record is keyed by
`(parentEntity, corporation)`.

***

## Blockchain Infrastructure

When deploying corporation wallets directly (not using the Wirex SDK), you receive the following
endpoints per environment. They are also returned by `GET /api/v1/config`.

| Credential        | Purpose                                      |
| ----------------- | -------------------------------------------- |
| Bundler RPC URL   | ZeroDev bundler for UserOperation submission |
| Paymaster RPC URL | ZeroDev paymaster for gas sponsorship        |
| RPC Provider URL  | Blockchain RPC endpoint                      |

***

## Smart Contract Addresses

Wirex provides a ContractRegistry address per chain and environment. Every other contract address is
resolved from the registry with `contractByName(name)`.

### ContractRegistry Addresses

| Environment | Chain           | Chain ID              | ContractRegistry Address                                   |
| ----------- | --------------- | --------------------- | ---------------------------------------------------------- |
| Sandbox     | Base Sepolia    | `84532`               | `0xC801a0f38E20500B5840c4927553b3409890bc3c`               |
| Sandbox     | Stellar Testnet | `9223372036854775806` | `CB2F7E7QVPUHUCMKIWNBTEPLL2S3GYDGQJQECIRKQ2PRKL2U3XNXOSNO` |
| Production  | Base            | `8453`                | `0xAFa697ebC7919998AF5CdE325Fbe990dC926aae4`               |
| Production  | Stellar         | `9223372036854775806` | `CCRZBVBWNMDYOOQNJKB6TGMTSE5HE57RWQUGTN3AWBHMDHO45UCABJRE` |

### Contracts Resolved from Registry

| Contract Name                   | Purpose                                                                                                           |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `CorporateAccounts`             | Corporation registration, employees, on-chain roles                                                               |
| `CorporateValidator`            | Signer module for corporation wallets — validates each UserOperation against the signer's on-chain role. Required |
| `ExecutionDelayCorporatePolicy` | Time-lock policy required as the corporation wallet's root validator                                              |
| `FundsManagement`               | Executor module the oracle uses to move funds on the corporation's behalf                                         |
| `TokensRegistry`                | Supported token list                                                                                              |

> The corporate contracts differ from the retail ones. A corporation wallet configured with the retail
> `Accounts` contract and `ExecutionDelayPolicy` is rejected at registration with
> `Policy is not the execution delay policy`.

***

## Credential Storage

* Store `client_secret` in a secrets manager (AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager)
* Never commit credentials to source control
* Never expose credentials in client-side code or logs
* Rotate credentials immediately if compromised

The `partner_id` is not secret. Store it in application configuration and validate it against your
expected value before submitting an on-chain registration.

***

## Token Addresses

Resolve token addresses at runtime from `GET /api/v1/config/tokens` — the catalogue is per company and
per chain. The values below are the platform tokens on Base.

### Production (Base — Chain ID 8453)

| Token | Address                                      | Decimals |
| ----- | -------------------------------------------- | -------- |
| USDC  | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | 6        |
| USDT  | `0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2` | 6        |
| EURC  | `0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42` | 6        |
| WUSD  | `0xb4bB2032A73A53C0Aa7Dc9ee2d9658a978fA7bC2` | 18       |
| WEUR  | `0x379e120C1921bFD8f5E0A1a3C699e7e800b66606` | 18       |

### Sandbox (Base Sepolia — Chain ID 84532)

| Token | Address                                      | Decimals |
| ----- | -------------------------------------------- | -------- |
| USDC  | `0x7Af7cDbd557eD302F7538Db1e3d094C8BBcA665c` | 6        |
| USDT  | `0x2C6c7c00ACa9B9D8446d107367485079b0471706` | 18       |
| EURC  | `0xF70461ffb413981852683657A310892227e3989e` | 6        |
| WUSD  | `0x0774164DC20524Bb239b39D1DC42573C3E4C6976` | 18       |
| WEUR  | `0x5c55F314624718019A326F16a62A05D6C6d8C8A2` | 18       |