Add a USDT0 (LayerZero OFT) page to the tokens section - #2795
Conversation
New page docs/tokens/usdt0-layerzero.mdx, placed right after the CCTP page in the sidebar. Covers what USDT0 is, mainnet addresses, how LayerZero fits, integration pointers to the official USDT0 docs, amount precision, constraints to check before listing, and a read-only RPC pre-listing check. Registers the route in routes.txt and llms.txt.
|
Preview is available here: |
Updated the USDT0 documentation to clarify asset characteristics and integration details.
|
Preview is available here: |
2 similar comments
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
2 similar comments
|
Preview is available here: |
|
Preview is available here: |
There was a problem hiding this comment.
Pull request overview
Adds USDT0/LayerZero documentation and navigation, but omits required issue scope and misrepresents an OFT quote result.
Changes:
- Adds USDT0 architecture, addresses, integration, and precision guidance.
- Adds navbar, route, and LLM index entries.
- Requires issuer constraints, RPC pre-listing check, and quote correction.
Recommendation: NEEDS-CHANGES — address the three blocking review comments.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
docs/tokens/usdt0-layerzero.mdx |
Adds the USDT0 documentation page. |
config/theme/navbar.ts |
Adds USDT0 to Tokens navigation. |
routes.txt |
Registers the generated route. |
static/llms.txt |
Adds the page to the LLM index. |
Suppressed comments (1)
docs/tokens/usdt0-layerzero.mdx:60
- #2793 also requires a read-only pre-listing check using Stellar RPC. The generic integration links and fee quote do not provide that check, so the page does not yet let a protocol verify the expected issuer/SAC/OFT configuration before listing USDT0. Add the requested non-mutating RPC example.
- **Bridging in or out.** End users move USDT0 with the [transfer UI](https://usdt0.to/transfer). Programmatic sends from Stellar go through the OFT contract's `quote_send` and `send` functions, with fees paid in XLM. The [USDT0 developer guide](https://docs.usdt0.to/technical-documentation/developer) documents the OFT interface and the message flow. Query `quote_send` for the current fee rather than relying on a documented number.
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| ## Integrate USDT0 | ||
|
|
||
| USDT0 needs no special integration code on Stellar. Use the same paths as for any other Stellar asset with a SAC: |
There was a problem hiding this comment.
This is intentional. The page is a short link-out page, like the CCTP page next to it. Issuer flags, home_domain checks, and the pre-listing script are out of scope. Protocols read those values from the network. I updated #2793 to match this scope.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Note for reviewers: the PR preview can lag behind the branch. Yesterday it served only the first build of a series of pushes (commit ad6d114, 18:22Z). Jenkins reported success for the three later commits, but their content never appeared, and a hard reload did not help. A single push today (ed7cb62) deployed fine, so this seems to affect back-to-back pushes only. If the preview looks stale, compare the |
|
Preview is available here: |
ElliotFriend
left a comment
There was a problem hiding this comment.
this is looking pretty great! i wouldn't block on any of these comments, but did provide some thoughts. thanks!!
|
|
||
| USDT0 needs no special integration code on Stellar. Use the same paths as for any other Stellar asset with a SAC: | ||
|
|
||
| - **Classic accounts and wallets.** The recipient opens a trustline to `USDT0:GATISXX6BZ6NC7IKQBY37CJD4SOZL3CYZJWXEDG6JVIY4WBS6KXJHN6Q` once. After that, any account holding USDT0 can send it with a payment operation. See [Send and Receive Payments](../build/guides/transactions/send-and-receive-payments.mdx) and [Verify Trustlines](../build/guides/basics/verify-trustlines.mdx). |
There was a problem hiding this comment.
| - **Classic accounts and wallets.** The recipient opens a trustline to `USDT0:GATISXX6BZ6NC7IKQBY37CJD4SOZL3CYZJWXEDG6JVIY4WBS6KXJHN6Q` once. After that, any account holding USDT0 can send it with a payment operation. See [Send and Receive Payments](../build/guides/transactions/send-and-receive-payments.mdx) and [Verify Trustlines](../build/guides/basics/verify-trustlines.mdx). | |
| - **Classic accounts and wallets.** The recipient opens a trustline to `USDT0:GATISXX6BZ6NC7IKQBY37CJD4SOZL3CYZJWXEDG6JVIY4WBS6KXJHN6Q` once. After that, any account holding USDT0 can send it to the recipient with a payment operation. See [Send and Receive Payments](../build/guides/transactions/send-and-receive-payments.mdx) and [Verify Trustlines](../build/guides/basics/verify-trustlines.mdx). |
the subject of the sentence gets a little mixed up. might be good to clarify which account it'll land in.
| USDT0 needs no special integration code on Stellar. Use the same paths as for any other Stellar asset with a SAC: | ||
|
|
||
| - **Classic accounts and wallets.** The recipient opens a trustline to `USDT0:GATISXX6BZ6NC7IKQBY37CJD4SOZL3CYZJWXEDG6JVIY4WBS6KXJHN6Q` once. After that, any account holding USDT0 can send it with a payment operation. See [Send and Receive Payments](../build/guides/transactions/send-and-receive-payments.mdx) and [Verify Trustlines](../build/guides/basics/verify-trustlines.mdx). | ||
| - **Smart contracts.** Call the SAC at `CBSJZEIO5C7KC2SF3MKSNXXJSW5G3VTNBX4ATMKUI3B2MR4JKM4R26YF` through the [token interface](./token-interface.mdx), the same way as any other token. See [Use Issued Assets in Smart Contracts with the SAC](./stellar-asset-contract.mdx). A contract balance in USDT0 lives in the SAC, separate from account trustlines. |
There was a problem hiding this comment.
| - **Smart contracts.** Call the SAC at `CBSJZEIO5C7KC2SF3MKSNXXJSW5G3VTNBX4ATMKUI3B2MR4JKM4R26YF` through the [token interface](./token-interface.mdx), the same way as any other token. See [Use Issued Assets in Smart Contracts with the SAC](./stellar-asset-contract.mdx). A contract balance in USDT0 lives in the SAC, separate from account trustlines. | |
| - **Smart contracts.** Call the SAC at `CBSJZEIO5C7KC2SF3MKSNXXJSW5G3VTNBX4ATMKUI3B2MR4JKM4R26YF` through the [token interface](./token-interface.mdx), the same way as any other token. See [Use Issued Assets in Smart Contracts with the SAC](./stellar-asset-contract.mdx). A contract balance in USDT0 lives in the SAC storage entries, separate from account trustlines. |
this may not be necessary, really. but it feels a little more "complete" to me?
Closes #2793
What changed
docs/tokens/usdt0-layerzero.mdx, placed right after the CCTP page in the sidebar (sidebar_position: 100).config/theme/navbar.tslists the page in the Tokens dropdown, after CCTP.routes.txtgains the new route (regenerated bypnpm build).static/llms.txtlists the new page under Tokens.