-
Notifications
You must be signed in to change notification settings - Fork 235
Add asset comparison #2174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add asset comparison #2174
Conversation
|
Preview is available here: |
6 similar comments
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
1 similar comment
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
leighmcculloch
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some thoughts inline, the main one being I think we are introducing the "classic" term here unnecessarily. This change looks like both a refactor and new information about SEP-57.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR rewrites the Stellar tokenization documentation page to present a broader comparison of tokenization models on Stellar: Classic Assets (with SAC), SEP-41 contract tokens, and regulated SEP-57 / ERC-3643 tokens. It adds a structured decision guide and comparison table to help issuers choose the appropriate model.
Changes:
- Retitles and restructures the page around “Tokenization Model Comparison on Stellar”, replacing the previous binary “assets vs contract tokens” framing.
- Adds detailed sections describing Classic Stellar Assets with SAC, SEP-41 contract tokens, and ERC-3643 / SEP-57 (T-REX) tokens, including strengths, tradeoffs, and recommended use cases.
- Introduces a comparison table, decision guide, expanded SAC explanation, and additional reference links to SEPs and example implementations.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Preview is available here: |
|
Preview is available here: |
|
Preview is available here: |
1 similar comment
|
Preview is available here: |
|
Preview is available here: |
2 similar comments
|
Preview is available here: |
|
Preview is available here: |
ElliotFriend
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
couple tiny nitpicks, and a more significant question about the note at the bottom of the table.
great additions!!
| | **Source Code** | [Built-in Stellar Asset Contract](https://github.com/stellar/rs-soroban-env/tree/main/soroban-env-host/src/builtin_contracts) | [OpenZeppelin Fungible Token reference](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/fungible) | [OpenZeppelin T-REX (RWA token) reference](https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/tokens/src/rwa) | | ||
| | **Relevant SEPs** | [SEP-0001 (Stellar Info File)][sep-1] <br /><br /> [SEP-0014 (Dynamic Asset Metadata)][sep-14] <br /><br />[SEP-41 (Soroban Token Interface)][sep-41] | [SEP-41 (Soroban Token Interface)][sep-41] | [SEP-41 (Soroban Token Interface)][sep-41] <br /><br /> [SEP-0057 (T-REX / Token for Regulated EXchanges)][sep-57] | | ||
|
|
||
| _\* By assigning a smart contract (`C...` address) as the owner of a Stellar Asset Contract, balances and transfer rules can be fully managed within the contract. This removes the need for trustlines, as balances are hold in the contract storage._ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is true, as written. At least, it the way it reads to me feels inaccurate. This sounds like a G... account holding an asset wouldn't need a trustline if the asset's SAC has a C... address admin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is what @leighmcculloch had suggested
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The admin can manage minting. In protocol 26 G accounts in contract land can also manage their own trust lines.
| - Regulatory requirements for Real World Assets (RWAs) | ||
| - Interoperability with Ethereum ERC-3643 | ||
|
|
||
| ::::note Summary: TLDR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ::::note Summary: TLDR | |
| :::note[Summary: TLDR] |
docusaurus admonitions titles use [] nowadays (source)
| - SEP-41 Contract Tokens are ideal for DeFi and advanced tokenomics requiring full programmability. | ||
| - SEP-57 ERC-3643 Tokens are designed for regulated Real World Assets, offering on-chain compliance and identity with institutional-grade controls. | ||
|
|
||
| :::: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| :::: | |
| ::: |
three colons for these adomintions
leighmcculloch
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some feedback inline.
|
|
||
| - Stellar Assets (with built-in Stellar Asset Contract), | ||
| - [SEP-41][sep-41] Contract Tokens, and | ||
| - Regulated [SEP-57][sep-57] Tokens (Tokens for Regulated EXchanges / T-REX) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Regulated [SEP-57][sep-57] Tokens (Tokens for Regulated EXchanges / T-REX) | |
| - [SEP-57][sep-57] T-REX Tokens for Regulated EXchanges |
|
|
||
| | Dimension | Stellar Asset (with SAC) | SEP-41 Contract Token | ERC-3643 (T-REX) | | ||
| | --- | --- | --- | --- | | ||
| | **Platform** | Stellar Ledger + Soroban | Soroban on Stellar | Soroban on Stellar | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wdyt?
| | **Platform** | Stellar Ledger + Soroban | Soroban on Stellar | Soroban on Stellar | | |
| | **Platform** | Stellar Operations + Soroban | Soroban on Stellar | Soroban on Stellar | |
| | Dimension | Stellar Asset (with SAC) | SEP-41 Contract Token | ERC-3643 (T-REX) | | ||
| | --- | --- | --- | --- | | ||
| | **Platform** | Stellar Ledger + Soroban | Soroban on Stellar | Soroban on Stellar | | ||
| | **Token Model** | Trustlines + native ops + SEP-41 via SAC | SEP-41 interface implemented by a smart contract, fully extensible | SEP-41 with extensible compliance logic | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| | **Token Model** | Trustlines + native ops + SEP-41 via SAC | SEP-41 interface implemented by a smart contract, fully extensible | SEP-41 with extensible compliance logic | | |
| | **Token Model** | Trustlines + Operations + SEP-41 via SAC | SEP-41 interface implemented by a smart contract, fully extensible | SEP-41 with extensible compliance logic | |
| | --- | --- | --- | --- | | ||
| | **Platform** | Stellar Ledger + Soroban | Soroban on Stellar | Soroban on Stellar | | ||
| | **Token Model** | Trustlines + native ops + SEP-41 via SAC | SEP-41 interface implemented by a smart contract, fully extensible | SEP-41 with extensible compliance logic | | ||
| | **Programmability** | ❌ Protocol-defined / SAC interface not updatable | ✅ Fully customizable | ✅ Fully customizable + compliance rules | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can shorten this to:
| | **Programmability** | ❌ Protocol-defined / SAC interface not updatable | ✅ Fully customizable | ✅ Fully customizable + compliance rules | | |
| | **Programmability** | ❌ Protocol-defined | ✅ Fully customizable | ✅ Fully customizable + compliance rules | |
| | **Token Model** | Trustlines + native ops + SEP-41 via SAC | SEP-41 interface implemented by a smart contract, fully extensible | SEP-41 with extensible compliance logic | | ||
| | **Programmability** | ❌ Protocol-defined / SAC interface not updatable | ✅ Fully customizable | ✅ Fully customizable + compliance rules | | ||
| | **Interaction Method** | Native ops (accounts) and contract calls (via SAC) | Contract calls | Contract calls | | ||
| | **Admin Control** | Protocol flags + optional admin via SAC | Custom contract logic | Built-in compliance and rule enforcement | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| | **Admin Control** | Protocol flags + optional admin via SAC | Custom contract logic | Built-in compliance and rule enforcement | | |
| | **Admin Control** | Issuer flags + optional admin via SAC | Custom contract logic | Built-in compliance and rule enforcement | |
| | **Programmability** | ❌ Protocol-defined / SAC interface not updatable | ✅ Fully customizable | ✅ Fully customizable + compliance rules | | ||
| | **Interaction Method** | Native ops (accounts) and contract calls (via SAC) | Contract calls | Contract calls | | ||
| | **Admin Control** | Protocol flags + optional admin via SAC | Custom contract logic | Built-in compliance and rule enforcement | | ||
| | **Identity Model** | Off-chain identity + optional contract logic | Programmable identity | Programmable identity with on-chain enforcement | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The off-chain identity piece isn't required if the admin is changed to a contract. So this is less true I think and not really a differentiator. In all cases the identity model can be programmable after initial setup.
| | **Cost & Speed** | Very low (native ops) / Moderate (via SAC) | Moderate | Higher | | ||
| | **Ecosystem** | Stellar payments, DEX, and Soroban | Stellar DeFi & dApps / Interop with other L1s | Institutional DeFi / Interop with other L1s | | ||
| | **Trustline Required** | ✅ Yes\* | ❌ No | ❌ No | | ||
| | **Ledger Storage** | Blockchain ledger (trustlines)\* | Smart contract storage | Smart contract storage | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ledger storage is the same, I think the differentiator isn't ledger vs contract storage, because they are essentially the same both are on the same ledger, but instead the costs for the storage. And for rent and archives we should link to docs about them.
| | **Ledger Storage** | Blockchain ledger (trustlines)\* | Smart contract storage | Smart contract storage | | |
| | **Ledger Storage Fees/Expiry** | 0.5xlm per trustline, no expiry\* | Rent and Archives | Rent and Archives | |
|
|
||
| - **Stellar Asset** Held in trustlines and transferred via payment operations. | ||
|
|
||
| - **Built-in Smart Contract (Stellar Asset Contract)** A [Stellar Asset Contract (SAC)][sac] can optionally be deployed to a contract address for the asset, implementing the SEP-41 token interface so the asset can be used in smart contracts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - **Built-in Smart Contract (Stellar Asset Contract)** A [Stellar Asset Contract (SAC)][sac] can optionally be deployed to a contract address for the asset, implementing the SEP-41 token interface so the asset can be used in smart contracts. | |
| - **Built-in Smart Contract (Stellar Asset Contract)** A [Stellar Asset Contract (SAC)][sac] can be deployed to a contract address for the asset, implementing the SEP-41 token interface so the asset can be used in smart contracts. Anyone can deploy this contract to enable interacting with the asset in smart contracts. |
|
|
||
| ### Tradeoffs | ||
|
|
||
| - Accounts must have an active trustline to receive, hold, and transact. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should also be listed under strengths as 'accounts can choose which assets they receive'
No description provided.