Token Restrictions

By default, every POS terminal shows all tokens -- both hardcoded tokens and any custom tokens the merchant has added. Token restrictions let the merchant limit which tokens appear on a specific terminal.


Why Restrict Tokens?

Common reasons:

  • Simplify the cashier experience: A coffee shop only wants to accept USDT and USDC -- no need to show 10 other tokens.

  • Per-terminal configuration: Register 1 accepts stablecoins only, Register 2 accepts everything.

  • Compliance: The merchant only wants to accept tokens with reliable pricing (Alchemy-tracked).


How It Works

Each terminal has a toggle: Restrict Available Tokens.

Toggle State
Behavior

OFF (default)

All hardcoded tokens + all merchant custom tokens are shown

ON

Only the tokens the merchant explicitly selected are shown

When the toggle is ON:

  • Networks are filtered too. If no tokens are selected for Polygon, Polygon doesn't appear in the network list at all.

  • Cashiers cannot add custom tokens. They can only use what the merchant configured.

When the toggle is OFF:

  • All tokens are available (current default behavior).


Setting Up Token Restrictions

When Creating a Terminal

  1. Go to Dashboard > POS > Terminals > Create Terminal

  2. Fill in the name, code, and wallet address

  3. Toggle Restrict Available Tokens to ON

  4. A token picker appears, grouped by network:

    • Ethereum: USDT, USDC, MAKA, etc.

    • Polygon: USDT, USDC, etc.

    • Custom Tokens: Any custom tokens the merchant has added (labeled with "Custom")

  5. Check the tokens you want this terminal to accept

  6. The counter at the bottom shows how many tokens are selected (e.g., "4 tokens selected")

  7. Click Create Terminal

When Editing a Terminal

  1. Go to Dashboard > POS > Terminals

  2. Click Edit on the terminal

  3. Scroll down to the Restrict Available Tokens section (below Cashier Access)

  4. Toggle ON/OFF and select tokens as needed

  5. Click Save Changes


What the Cashier Sees

With Restrictions ON (e.g., USDT on Ethereum + USDC on Polygon)

Step
What Appears

Network selection

Only Ethereum and Polygon (networks with allowed tokens)

Token selection (Ethereum)

Only USDT

Token selection (Polygon)

Only USDC

With Restrictions OFF

Step
What Appears

Network selection

All supported networks

Token selection

All hardcoded tokens + merchant custom tokens for that network


Custom Tokens in the Picker

If the merchant has added custom tokens (via Dashboard > Custom Tokens), those tokens appear in the restriction picker alongside the built-in tokens. They are labeled with (Custom) so the merchant can tell them apart.

Custom tokens show with their logo (if available) or a placeholder icon.


Important Notes

  • Default is OFF: Existing terminals are not affected. All tokens remain available unless the merchant explicitly enables restrictions.

  • At least one token required: If you enable restrictions, you must select at least one token. The system prevents saving with zero tokens selected.

  • Changes take effect immediately: After saving, the next time a cashier opens the terminal, they will see the updated token list.

  • Address casing: Token addresses are stored in lowercase for consistent matching. You don't need to worry about uppercase/lowercase.


Troubleshooting

"No tokens available" on the terminal

Cause: Token restrictions are enabled but the allowed tokens list is empty, or all allowed tokens were removed.

Fix:

  1. Go to Dashboard > POS > Terminals

  2. Edit the terminal

  3. Either add tokens to the allowed list, or toggle off token restrictions

  4. Save

A custom token doesn't show in the picker

Cause: The custom token may not have been added yet, or it was added on a chain that isn't supported.

Fix:

  1. Go to Dashboard > Custom Tokens

  2. Add the token for the correct chain

  3. Return to the terminal editor -- the token now appears in the picker

Cashier can't see a token they need

Cause: The terminal has token restrictions enabled and that token isn't in the allowed list.

Fix: Edit the terminal and add the token to the allowed list, or disable token restrictions entirely.

Last updated