Overview
A Registered Address is a crypto destination address that your organization whitelists against a customer. Registering screens the address once and records it; a crypto payout withpurpose: INTERCOMPANY then requires its destination.recipient.address to match a REGISTERED entry for that customer — otherwise the payout returns 422 RECIPIENT_NOT_WHITELISTED. The registered address is a whitelist match by chain + address that gates the payout, not a recipient you reference by id: every POST /v2/payouts still carries the full destination.recipient, and there is no registeredAddressId field. For any other purpose, registering is not required — the inline recipient is accepted without a prior whitelist entry.
Registration is synchronous — a successful POST returns the address already in REGISTERED status. (This differs from whitelist recipients, where bank recipients go through an asynchronous review.)
Custody types
A registered address declares who controls the destination wallet, set by thetype discriminator:
SELF_CUSTODY— the customer owns and controls the wallet. RequiresselfCustodyAttestation: true.THIRD_PARTY— the wallet belongs to someone else (for example, a counterparty’s wallet). RequiresoriginatorDetailsdescribing the beneficial owner, used for Travel Rule disclosure:entityType: "INDIVIDUAL"→firstName,lastName,dateOfBirth,countryOfCitizenshipentityType: "BUSINESS"→legalName,country
Lifecycle
| Status | Meaning |
|---|---|
REGISTERED | The address has been screened and is ready to receive payouts. Returned synchronously on a successful registration. |
SUSPENDED | The registration has been temporarily suspended. Payouts to this address are blocked until it is restored. A 409 REGISTERED_ADDRESS_SUSPENDED is returned both when re-registering an already-suspended address and when a first-time registration is screened and suspended on the spot — in either case don’t retry; contact Conduit. |
REVOKED | The registration was cancelled via DELETE. Terminal. |
REGISTERED for the customer is idempotent — it returns the existing record rather than creating a duplicate.
Key fields
| Field | Type | Description |
|---|---|---|
id | wra_* | Unique identifier for the registered address. |
chain | string | Chain the address is on (e.g. ethereum). |
address | string | The destination address. Returned normalized (e.g. lowercased for EVM chains). |
type | SELF_CUSTODY | THIRD_PARTY | Custody model declared at registration. |
selfCustodyAttestation | boolean | Present for SELF_CUSTODY; the customer attests they own the wallet. |
originatorDetails | object | null | Beneficial-owner disclosure for THIRD_PARTY. |
status | see above | Current status. |
label | string | null | Optional human-readable label. |
API surface
POST /v2/customers/:customerId/wallets/registered-addresses— register an address (requiresIdempotency-Key); returns201withstatus: REGISTEREDGET /v2/customers/:customerId/wallets/registered-addresses— list registered addresses for the customerGET /v2/wallets/registered-addresses/:id— get a single registered addressDELETE /v2/wallets/registered-addresses/:id— revoke a registered address (terminal)