> For the complete documentation index, see [llms.txt](https://developer.1moneynetwork.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.1moneynetwork.com/integrations/rest-apis/tokens/whitelist.md).

# Whitelist

The whitelist feature enables token issuers to **explicitly grant access** to specific addresses for holding and transferring tokens. This feature is **only available for private tokens** (tokens created with `is_private = true`).

### How It Works

* **Default State**: No addresses can use the token
* **After Whitelisting**: Only approved addresses can receive and send the token
* **Authority**: Only the token's master authority can manage the whitelist

### Use Cases

* **Security Tokens**: Restrict access to accredited investors only
* **Private Sales**: Control participation in token sales
* **Enterprise Tokens**: Limit usage to verified business partners
* **Membership Tokens**: Grant access to exclusive community members

### Key Points

* Only whitelisted addresses can interact with the token
* Non-whitelisted addresses **cannot**:
  * Receive tokens (transfers will fail)
  * Send tokens (blocked at protocol level)
  * View or interact with token functions
* Whitelist status can be revoked at any time
* All whitelist changes are recorded on-chain

### Common Scenarios

#### KYC/AML Compliance

Private tokens often require Know Your Customer (KYC) verification before whitelisting, ensuring only verified users can participate.

#### Phased Access

Projects can gradually whitelist addresses for controlled token distribution phases (private sale → public sale → general access).

#### Geographic Restrictions

Whitelist only addresses from permitted jurisdictions to comply with regional regulations.

### Important Notes

* **Private Tokens Only**: Cannot use whitelist on public tokens
* **Strict Access Control**: No exceptions for non-whitelisted addresses
* **Planning Required**: Must whitelist addresses before they can receive tokens
* **Operational Overhead**: Requires active management as new users join

## POST /v1/tokens/manage\_whitelist

>

```json
{"openapi":"3.1.0","info":{"title":"om-api-rest","version":"0.1.0"},"tags":[{"name":"tokens","description":"Tokens API"}],"servers":[{"url":"https://api.testnet.1money.network","description":"Testnet API server"},{"url":"https://api.1money.network","description":"Mainnet API server"},{"url":"http://localhost:18555","description":"Local API server"}],"paths":{"/v1/tokens/manage_whitelist":{"post":{"tags":["tokens"],"operationId":"manage_whitelist","requestBody":{"description":"token whitelist management request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhitelistRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hash"}}}},"400":{"description":"Client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RESTErrorData"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RESTErrorData"}}}},"408":{"description":"Request timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RESTErrorData"}}}},"422":{"description":"Business logic error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RESTErrorData"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RESTErrorData"}}}}}}}},"components":{"schemas":{"WhitelistRequest":{"allOf":[{"$ref":"#/components/schemas/WhitelistPayload"},{"type":"object","required":["signature"],"properties":{"signature":{"$ref":"#/components/schemas/RestSignature"}}}],"description":"Whitelist request for managing token whitelists"},"WhitelistPayload":{"type":"object","description":"Payload for whitelist operations","required":["chain_id","nonce","action","address","token"],"properties":{"action":{"$ref":"#/components/schemas/WhitelistAction","description":"The action of the transaction: Add or Remove from whitelist."},"address":{"$ref":"#/components/schemas/AddressSchema","description":"The address to be added to or removed from whitelist."},"chain_id":{"type":"integer","format":"int64","description":"The chain id of the transaction.","minimum":0},"nonce":{"type":"integer","format":"int64","description":"The nonce of the transaction.","minimum":0},"token":{"$ref":"#/components/schemas/TokenAddressSchema","description":"The token address of the transaction."}}},"WhitelistAction":{"type":"string","description":"Action types for whitelist operations","enum":["Add","Remove"]},"AddressSchema":{"type":"string","title":"string"},"TokenAddressSchema":{"type":"string","title":"string"},"RestSignature":{"type":"object","description":"Signature type for REST requests.\n\nWe use this type to avoid the ambiguity of the signature type in the core\nprimitives.\n\nThis type is referred to `https://github.com/alloy-rs/alloy/blob/b2278c40b2693908e4e5108d65ade26e8d716765/crates/rpc-types-eth/src/transaction/signature.rs#L9`.","required":["r","s","v"],"properties":{"r":{"$ref":"#/components/schemas/SignatureRSchema","description":"The R field of the signature; the point on the curve."},"s":{"$ref":"#/components/schemas/SignatureSSchema","description":"The S field of the signature; the point on the curve."},"v":{"type":"integer","format":"int64","description":"For EIP-155, EIP-2930 and Blob transactions this is set to the parity (0\nfor even, 1 for odd) of the y-value of the secp256k1 signature.\n\nFor legacy transactions, this is the recovery id\n\nSee also <https://ethereum.github.io/execution-apis/api-documentation/> and <https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionbyhash>","minimum":0}}},"SignatureRSchema":{"type":"string","title":"string","description":"Signature R schema"},"SignatureSSchema":{"type":"string","title":"string","description":"Signature S schema"},"Hash":{"type":"object","description":"Represents a transaction hash returned by the API.","required":["hash"],"properties":{"hash":{"$ref":"#/components/schemas/B256Schema"}}},"B256Schema":{"type":"string","title":"string"},"RESTErrorData":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string","description":"Structured error code for programmatic handling"},"message":{"type":"string","description":"Human-readable error message"}}}}}}
```
