Skip to content
Closed
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
15 changes: 14 additions & 1 deletion STYLEGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,11 @@ Before returning any page, read it back and answer these four questions. Fix any
| STABLE | Referring to the token (all caps) | Stable (when meaning the token), stable |
| StableChain | Referring to the underlying settlement layer / protocol (capital S and C) | Stablechain, Stable chain, stablechain |
| Stablechain | Only in the introductory definition ("Stable is the first Stablechain") | |
| USDT | Referring to the asset | Tether (unless referring to the company) |
| USDT | Referring to native USDT on a source chain, or to the broader asset where the distinction from USDT0 does not matter | Usdt, Tether (unless referring to the company) |
| USDT0 | Referring to the omnichain asset, including Stable's native gas and settlement asset | Usdt0, USDT when referring specifically to the asset on Stable |

- Use the product or protocol name exactly as branded (e.g., "LayerZero", "RedStone", "USDT0").
- Never title-case an acronym or branded identifier. Write `USDT0`, `FAQ`, and `API`, not `Usdt0`, `Faq`, or `Api`.

### UI and keyboard actions

Expand All @@ -65,6 +67,11 @@ Before returning any page, read it back and answer these four questions. Fix any
- Do not use title case (e.g., ~~"Gas Pricing And Fees"~~).
- Vocs builds the right-side outline from your headings, so keep them short and scannable.

### FAQ sections

- In an FAQ section within a larger page, write each question as a `###` heading. This gives every question a visible hierarchy and a stable anchor.
- On the dedicated `reference/faq.mdx` page, write each question as a bold paragraph ending in `?`. The structured-data parser uses that format to generate `FAQPage` question-and-answer entries.

## Frontmatter

Every page must include these three fields, in this order:
Expand Down Expand Up @@ -120,6 +127,12 @@ Every page has exactly one home in the sidebar. Edit only the `/en` section of `

When a concept is relevant to multiple sections (e.g., a Learn concept that readers also need mid-task in Build), keep it in its canonical section and surface it from the others through **content**, not navigation. Link to it from the relevant overview page inline. Concepts live in one place; task-oriented sections point at them.

### Sidebar labels

- Use sentence case for English sidebar labels.
- Preserve the exact capitalization of acronyms, standards, and branded identifiers such as `USDT0`, `FAQ`, `API`, `JSON-RPC`, and `EIP-7702`.
- Match the destination page's title unless the surrounding navigation provides context that allows a shorter label.

## Page structure

Follow this general pattern:
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/bank-module.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ The full method signatures, event payloads, and authorization flow are in the [B

- [**Bank precompile reference**](/en/reference/bank-module-api): Call `transfer`, `approve`, `mint`, `burn`, and read events.
- [**System modules overview**](/en/explanation/system-modules-overview): Return to the full list of precompile-exposed modules.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the dual-role asset model the bank module manages.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the dual-role asset model the bank module manages.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/confidential-transfer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@ Confidential Transfer is in development. See [Roadmap](/en/explanation/technical

## Next recommended

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the asset model confidential transfers shield.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the asset model confidential transfers shield.
- [**Flow of funds**](/en/explanation/flow-of-funds): See where confidentiality fits in the end-to-end payment lifecycle.
- [**Roadmap**](/en/explanation/technical-roadmap): Track when confidential transfer ships.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/eip-7702.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,5 @@ After submission, the EOA's account code is set to the delegate. Subsequent tran
## Next recommended

- [**Account Abstraction (EIP-7702)**](/en/reference/eip-7702-api): Implement batch payments, spending limits, and session keys against a delegate contract.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the gas model that EIP-7702 transactions run on.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the gas model that EIP-7702 transactions run on.
- [**Gas waiver**](/en/explanation/gas-waiver): Compare delegation to gas-waived flows where an application pays the user's gas instead.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/erc-3009.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,6 @@ This property is what makes ERC-3009 on Stable a strong foundation for higher-le

**See also:**

- [USDT as Gas](/en/explanation/usdt-as-gas-token)
- [USDT0 as gas](/en/explanation/usdt-as-gas-token)
- [USDT0 Behavior on Stable](/en/explanation/usdt0-behavior)
- [x402 (HTTP-Native Payments)](/en/explanation/x402)
4 changes: 2 additions & 2 deletions docs/pages/en/explanation/ethereum-comparison.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ On Stable, transaction fees are paid in USDT0, not a volatile native token. This

- Users need USDT0 in their wallet to submit transactions.
- The `value` field in transactions still works for sending USDT0, similar to how ETH is sent on Ethereum.
- See [USDT as gas](/en/explanation/usdt-as-gas-token) for details.
- See [USDT0 as gas](/en/explanation/usdt-as-gas-token) for details.

### 3. No priority tips

Expand Down Expand Up @@ -74,6 +74,6 @@ USDT0 functions as both the native gas token and an ERC-20 token. This introduce

## Next recommended

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the asset model that replaces ETH for gas.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the asset model that replaces ETH for gas.
- [**Gas pricing**](/en/explanation/gas-pricing): Review the single-component fee model in detail.
- [**USDT0 behavior on Stable**](/en/explanation/usdt0-behavior): Audit contracts for dual-role asset semantics, allowance safety, and `EXTCODEHASH` behavior.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/flow-of-funds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,6 @@ The conversion logic (e.g., BTC → USDT) may be handled by an exchange partner,

## Next recommended

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand how USDT0 serves as both native gas and ERC-20 balance on Stable.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand how USDT0 serves as both native gas and ERC-20 balance on Stable.
- [**Bridging USDT0 to Stable**](/en/explanation/usdt0-bridging): See how USDT0 moves onto Stable from other chains via OFT Mesh or Legacy Mesh.
- [**Send your first USDT0**](/en/tutorial/send-usdt0): Submit a USDT0 transfer on testnet using standard EVM tooling.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/gas-pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@ Stable accepts EIP-1559 (Type 2) transactions, but `maxPriorityFeePerGas` is alw
## Next recommended

- [**Gas pricing reference**](/en/reference/gas-pricing-api): Construct transactions, estimate gas, and configure tooling against Stable's fee model.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): See how USDT0 serves as both native gas and ERC-20 balance.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): See how USDT0 serves as both native gas and ERC-20 balance.
- [**Ethereum comparison**](/en/explanation/ethereum-comparison): Review every behavior difference you'll encounter porting from Ethereum.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/gas-waiver.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,4 @@ For flows where the user does hold USDT0 but wants to bundle multiple calls into

- [**Enable gas-free transactions**](/en/how-to/integrate-gas-waiver): Integrate the hosted Waiver Server API with API-key submission and NDJSON responses.
- [**Gas waiver protocol**](/en/reference/gas-waiver-api): Read the full protocol spec: marker routing, wrapper format, governance controls.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the gas token that the waiver covers.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the gas token that the waiver covers.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/key-features.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Stable is a delegated Proof-of-Stake Layer 1 with single-slot finality, full EVM

## USDT-specific features

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): USDT0 serves as both the native gas token and an ERC-20 token on the same balance.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): USDT0 serves as both the native gas token and an ERC-20 token on the same balance.
- [**Gas waiver**](/en/explanation/gas-waiver): Governance-authorized waivers submit wrapper transactions that execute at zero gas price on the user's behalf.
- [**Guaranteed blockspace**](/en/explanation/guaranteed-blockspace): Enterprise partners secure reserved capacity in every block for payment flows.
- [**USDT transfer aggregator**](/en/explanation/usdt-transfer-aggregator): High-volume USDT0 transfers batch into parallelized, fault-tolerant settlement bundles.
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/learn-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ diataxis: "explanation"
## USDT0 behavior

- [**USDT0 behavior on Stable**](/en/explanation/usdt0-behavior): Dual-role balance, reconciliation events, and contract design rules.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Why Stable uses USDT0 to pay for gas and what that means for fees.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Why Stable uses USDT0 to pay for gas and what that means for fees.
- [**Flow of funds**](/en/explanation/flow-of-funds): How USDT moves end-to-end across Stable.
- [**USDT0 features**](/en/explanation/usdt-features-overview): Every USDT0-specific feature with links to each.

Expand Down
4 changes: 2 additions & 2 deletions docs/pages/en/explanation/technical-roadmap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ Status: **Live on mainnet.**

A customized PoS consensus protocol built on CometBFT. Delivers deterministic finality and Byzantine fault tolerance up to one-third of validators. See [Consensus](/en/explanation/consensus) for the current implementation.

### USDT as native gas: Live
### USDT0 as native gas: Live

USDT0 is the native asset for gas payment and value transfer, and simultaneously supports the ERC-20 surface (`approve`, `transfer`, `transferFrom`, `permit`). See [USDT as gas](/en/explanation/usdt-as-gas-token).
USDT0 is the native asset for gas payment and value transfer, and simultaneously supports the ERC-20 surface (`approve`, `transfer`, `transferFrom`, `permit`). See [USDT0 as gas](/en/explanation/usdt-as-gas-token).

### Stable Pay & Stable Name: In progress

Expand Down
24 changes: 12 additions & 12 deletions docs/pages/en/explanation/usdt-as-gas-token.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: USDT as gas
title: USDT0 as gas
description: "How USDT0 functions as Stable's native gas token, replacing volatile assets for predictable transaction fees."
diataxis: "explanation"
---

# USDT as gas
# USDT0 as gas

**You pay fees in USDT0. No second token, no wrapping, no ETH-equivalent to keep topped up.** USDT0 serves as both the native gas token and an ERC-20 token on the same balance. The same asset that moves as payment also pays for the transaction that moves it. Fees are denominated in dollars, not a volatile native token.

Expand Down Expand Up @@ -272,25 +272,25 @@ Correct contract design on Stable requires:

## FAQ

**We’re using USDT0 as the wrapped native token today. After this upgrade, which token should be treated as the wrapped native?**
### Which token should integrations treat as the wrapped native token?

USDT0 becomes both the native token and an ERC-20 token after the upgrade. You should use USDT0 directly, and wrapping or unwrapping is no longer required.
USDT0 becomes both the native token and an ERC-20 token after the upgrade. Use USDT0 directly. You no longer need to wrap or unwrap it.

**What happens to the original USDT0 contract address (`0x779Ded0c9e1022225f8E0630b35a9b54bE713736`)?**
### What happens to the original USDT0 contract address?

Nothing changes. The same address remains valid and continues to represent USDT0.
Nothing changes. `0x779Ded0c9e1022225f8E0630b35a9b54bE713736` remains valid and continues to represent USDT0.

**After the upgrade, is the native token address `0x779Ded0c9e1022225f8E0630b35a9b54bE713736` (instead of `0x0000000000000000000000000000000000001000`)?**
### Which address identifies the native token?

Yes. After the upgrade, the native token identifier/address is `0x779Ded0c9e1022225f8E0630b35a9b54bE713736`.
The native token identifier is `0x779Ded0c9e1022225f8E0630b35a9b54bE713736`, not `0x0000000000000000000000000000000000001000`.

**What about `0x0000000000000000000000000000000000001000`? Is it still used as the token address for gUSDT, and should we keep it on our side?**
### Should integrations keep the former gUSDT address?

No. You can remove it. It will not be used after the upgrade.
No. You can remove `0x0000000000000000000000000000000000001000`. It isn't used after the upgrade.

**For DEX calldata, will protocols stop using `0x0000000000000000000000000000000000001000` as the “native token identifier and use `0x779Ded0c9e1022225f8E0630b35a9b54bE713736` instead?**
### Which native token identifier should DEX calldata use?

Correct. After the upgrade, DEXs should use `0x779Ded0c9e1022225f8E0630b35a9b54bE713736` as the native token identifier.
DEX calldata should use `0x779Ded0c9e1022225f8E0630b35a9b54bE713736` as the native token identifier.

## Next recommended

Expand Down
4 changes: 2 additions & 2 deletions docs/pages/en/explanation/usdt-features-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Stable addresses each friction with a dedicated mechanism:

| Friction | Mechanism | Page |
| :--- | :--- | :--- |
| Separate gas token | USDT0 is the native gas token | [USDT as gas](/en/explanation/usdt-as-gas-token) |
| Separate gas token | USDT0 is the native gas token | [USDT0 as gas](/en/explanation/usdt-as-gas-token) |
| User pays gas at all | Governance-authorized waivers cover gas | [Gas waiver](/en/explanation/gas-waiver) |
| Cost and inclusion variance | Reserved block capacity for enrolled partners | [Guaranteed blockspace](/en/explanation/guaranteed-blockspace) |
| Throughput ceiling | Parallelized USDT0 transfer batching | [USDT transfer aggregator](/en/explanation/usdt-transfer-aggregator) |
Expand All @@ -36,6 +36,6 @@ For the full set of Stable's differences from a general-purpose EVM chain, see [

## Next recommended

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the asset that replaces ETH for gas and payment at once.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the asset that replaces ETH for gas and payment at once.
- [**Flow of funds**](/en/explanation/flow-of-funds): Trace USDT from on-ramp through on-chain transfer to off-ramp settlement.
- [**Bridging USDT0 to Stable**](/en/explanation/usdt0-bridging): See how USDT0 moves onto Stable from other chains.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/usdt-transfer-aggregator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,4 @@ Stable's USDT Transfer Aggregator is a targeted optimization that maximizes thro

- [**Payments use cases**](/en/explanation/payment-use-cases-overview): See the payment patterns that benefit most from aggregated throughput: P2P, subscriptions, pay-per-call.
- [**Execution**](/en/explanation/execution): See the parallel execution engine the aggregator builds on.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the asset model the aggregator moves.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the asset model the aggregator moves.
4 changes: 2 additions & 2 deletions docs/pages/en/explanation/usdt0-behavior.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This page walks through each case and gives safe contract patterns. If you only

USDT0 on Stable is both the native gas token and an ERC-20 token. This dual-role model affects balance behavior, contract design, and event handling. The sections below walk through every case where the dual role changes expected behavior.

For background on why USDT0 operates this way, see [USDT as gas](/en/explanation/usdt-as-gas-token). To experience the behavior through real transfers, see [Send your first USDT0](/en/tutorial/send-usdt0).
For background on why USDT0 operates this way, see [USDT0 as gas](/en/explanation/usdt-as-gas-token). To experience the behavior through real transfers, see [Send your first USDT0](/en/tutorial/send-usdt0).

## Balance reconciliation

Expand Down Expand Up @@ -180,6 +180,6 @@ Off-chain services and indexers should:

## Next recommended

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand why USDT0 operates as both the native asset and an ERC-20 token.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand why USDT0 operates as both the native asset and an ERC-20 token.
- [**Send your first USDT0**](/en/tutorial/send-usdt0): Submit a USDT0 transfer on testnet via native and ERC-20 paths.
- [**Ethereum comparison**](/en/explanation/ethereum-comparison): Review every behavior difference when porting from Ethereum.
2 changes: 1 addition & 1 deletion docs/pages/en/explanation/usdt0-bridging.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,4 @@ The remaining steps follow the exact same path as [bridging USDT0 to Stable](#pa

- [**Flow of funds**](/en/explanation/flow-of-funds): See the end-to-end lifecycle of USDT from on-ramp through settlement.
- [**Bridge tutorial**](/en/tutorial/bridge-usdt0): Bridge Test USDT from Sepolia to Stable testnet using the LayerZero OFT Adapter.
- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand what the asset does once it lands on Stable.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand what the asset does once it lands on Stable.
4 changes: 2 additions & 2 deletions docs/pages/en/explanation/use-case-payments.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ On general-purpose chains, users must hold a separate gas token (ETH, SOL) just

## How Stable addresses it

- **USDT0 is both the gas token and the payment asset.** A user only ever needs one asset to send or receive. See [USDT as gas](/en/explanation/usdt-as-gas-token).
- **USDT0 is both the gas token and the payment asset.** A user only ever needs one asset to send or receive. See [USDT0 as gas](/en/explanation/usdt-as-gas-token).
- **Gas waiver lets applications cover gas on behalf of users**, enabling a zero-fee UX without the user touching a second token. See [Gas waiver](/en/explanation/gas-waiver).
- **Single-slot finality means settlement is immediate.** Once a transfer is in a block, it's final. See [Ethereum comparison](/en/explanation/ethereum-comparison).

## Next recommended

- [**USDT as gas**](/en/explanation/usdt-as-gas-token): Understand the asset that replaces ETH for gas and payment at once.
- [**USDT0 as gas**](/en/explanation/usdt-as-gas-token): Understand the asset that replaces ETH for gas and payment at once.
- [**Gas waiver**](/en/explanation/gas-waiver): See how applications cover user gas through governance-approved waiver addresses.
- [**Ethereum comparison**](/en/explanation/ethereum-comparison): Review what changes (finality, gas token, priority tips) when moving from Ethereum.
16 changes: 8 additions & 8 deletions docs/sidebar.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"collapsed": true,
"items": [
{
"text": "Usdt Features Overview",
"text": "USDT0 features overview",
"link": "/en/explanation/usdt-features-overview"
},
{
Expand All @@ -75,11 +75,11 @@
"link": "/en/explanation/bridge-security"
},
{
"text": "Usdt As Gas Token",
"text": "USDT0 as gas",
"link": "/en/explanation/usdt-as-gas-token"
},
{
"text": "Usdt0 Behavior",
"text": "USDT0 behavior",
"link": "/en/explanation/usdt0-behavior"
},
{
Expand All @@ -91,7 +91,7 @@
"link": "/en/explanation/guaranteed-blockspace"
},
{
"text": "Usdt Transfer Aggregator",
"text": "USDT Transfer Aggregator",
"link": "/en/explanation/usdt-transfer-aggregator"
},
{
Expand Down Expand Up @@ -277,19 +277,19 @@
"collapsed": true,
"items": [
{
"text": "Send Usdt0",
"text": "Send your first USDT0",
"link": "/en/tutorial/send-usdt0"
},
{
"text": "Zero Gas Transactions",
"link": "/en/how-to/zero-gas-transactions"
},
{
"text": "Work With Usdt Gas",
"text": "Work with USDT0 as gas",
"link": "/en/how-to/work-with-usdt-gas"
},
{
"text": "Bridge Usdt0",
"text": "Bridge USDT0 to Stable",
"link": "/en/tutorial/bridge-usdt0"
}
]
Expand Down Expand Up @@ -2063,4 +2063,4 @@
]
}
]
}
}
Loading