Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/pages/guide/issuance/create-a-stablecoin.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ Now that we have some input fields, we need to add some logic to handle the subm

After this step, your users will be able to create a stablecoin by clicking the "Create" button!

:::warning
We **strongly** recommend that for stablecoins, the `currency` field be set to the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) three-letter code for the underlying fiat currency (e.g., `"USD"`, `"EUR"`, `"GBP"`) — **not** the token symbol. This value is **immutable** after token creation and affects fee payment eligibility, DEX routing, and quote token pairing. **Only `USD` stablecoins can be used to pay transaction fees on Tempo** — if your stablecoin is USD-denominated, the currency must be set to `"USD"` to be eligible for fee payment.
:::

<Demo.Container name="Create Form">
<Step.CreateToken stepNumber={1} last />
</Demo.Container>
Expand Down
27 changes: 26 additions & 1 deletion src/pages/protocol/tip20/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,32 @@ TIP-20 supports an opt-in [reward distribution system](/protocol/tip20-rewards/o

### Currency Declaration

A TIP-20 token can declare a currency identifier (e.g., `"USD"`, `"EUR"`) that identifies the real-world asset backing the token. This enables proper routing and pricing in Tempo's [Stablecoin DEX](/protocol/exchange). USD-denominated TIP-20 tokens can be used to pay transaction fees and serve as quote tokens in the DEX.
A TIP-20 token can declare a currency identifier (e.g., `"USD"`, `"EUR"`) that identifies the real-world asset backing the token. This enables proper routing and pricing in Tempo's [Stablecoin DEX](/protocol/exchange). **Only `USD`-denominated stablecoins can be used to pay transaction fees on Tempo.** USD-denominated TIP-20 tokens also serve as quote tokens in the DEX.

Stablecoin currency identifiers should be [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) three-letter currency codes. Common examples include:

| Code | Currency |
|-------|------------------------|
| `USD` | United States Dollar |
| `EUR` | Euro |
| `GBP` | British Pound Sterling |
| `JPY` | Japanese Yen |
| `SGD` | Singapore Dollar |
| `BRL` | Brazilian Real |
| `AED` | UAE Dirham |

The `currency` field represents the **denomination**, not the token itself — multiple tokens can share the same currency code:

| Token | Correct `currency` | Incorrect `currency` |
|---------------|---------------------|----------------------|
| USDC | `"USD"` | `"USDC"` |
| USDT | `"USD"` | `"USDT"` |
| PYUSD | `"USD"` | `"PYUSD"` |
| EURC | `"EUR"` | `"EURC"` |

:::warning
The currency code is **immutable** — it cannot be changed after token creation. An incorrect currency code will affect fee payment eligibility, DEX routing, and quote token pairing.
:::

### DEX Quote Tokens

Expand Down
4 changes: 2 additions & 2 deletions src/pages/protocol/tip20/spec.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ TIP-20 tokens cannot be sent to other TIP-20 token contract addresses. The imple
Any attempt to transfer to a TIP-20 token address must revert with `InvalidRecipient`. This prevents accidental token loss by sending funds to token contracts instead of user accounts.

## Currencies and Quote Tokens
Each TIP-20 token declares a currency identifier and a corresponding `quoteToken` used for pricing and routing in the Stablecoin DEX. Tokens with `currency == "USD"` must pair with a USD-denominated TIP-20 token.
Each TIP-20 token declares a currency identifier and a corresponding `quoteToken` used for pricing and routing in the Stablecoin DEX. Stablecoin currency identifiers should be [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) three-letter codes representing the underlying fiat currency (e.g., `"USD"`, `"EUR"`, `"GBP"`) — not the token's own symbol. The currency is set at token creation and **cannot be changed afterward**. **Only tokens with `currency == "USD"` are eligible for paying transaction fees.** Tokens with `currency == "USD"` must pair with a USD-denominated TIP-20 token.

Updating the quote token occurs in two phases:
1. `setNextQuoteToken` stages a new quote token.
Expand Down Expand Up @@ -470,7 +470,7 @@ interface ITIP20Factory {
/// @notice Creates and deploys a new TIP-20 token
/// @param name The token's ERC-20 name
/// @param symbol The token's ERC-20 symbol
/// @param currency The token's currency identifier (e.g. "USD")
/// @param currency The token's ISO 4217 currency code (e.g. "USD", "EUR"). Immutable after creation.
/// @param quoteToken The TIP-20 quote token used for exchange pricing
/// @param admin The address to receive DEFAULT_ADMIN_ROLE on the new token
/// @param salt A unique salt for deterministic address derivation
Expand Down