MStack
Table of Contents
1. Overview
1.1 Background
1.2 What is MStack
1.3 Design Goals
Goal
Description
1.4 Scope of Application
2. Design Principles
2.1 Memo First
2.2 Prefix-Driven
2.3 Field Compression
Strategy
Description
2.4 Version Compatibility
3. Message Format Specification
3.1 Basic Syntax
Rule
Description
3.2 Operator Definitions
Operator
Memo Prefix
Operation Type
Description
3.3 Reserved Operators
3.4 Special Character Restrictions
4. Operation Type Definitions
4.1 Cross-Chain Swap (Mx)
#
Field
Required
Length
Description
4.2 Cross-Chain Transfer In (M>)
#
Field
Required
Description
4.3 Cross-Chain Refund (M<)
#
Field
Required
Description
4.4 Add Liquidity (M+)
#
Field
Required
Description
4.5 Remove Liquidity (M-)
#
Field
Required
Description
4.6 Asset Migration (M~)
#
Field
Required
Description
4.7 Cross-Chain Message (M!) - Extension
#
Field
Required
Description
5. Chain Identifier Specification
5.1 Alias Rules
Rule
Description
5.2 Predefined Chain Aliases
5.2.1 Contract Chains
Chain Name
Chain ID
Alias
Address Format
5.2.2 Non-Contract Chains
Chain Name
Alias
Address Format
5.3 Alias Registration
6. Token Identifier Specification
6.1 Alias Rules
Rule
Description
6.2 Predefined Token Aliases
6.2.1 Universal Aliases
Token Type
Alias
Description
6.2.2 Stablecoins
Token
Alias
Description
6.2.3 Major Assets
Token
Alias
Description
6.3 Token Registration
6.4 Cross-Chain Token Mapping
7. Address Format Specification
7.1 Format Requirements
Chain Type
Format Requirement
Validation Rule
7.2 Case Rules
Chain
Rule
Description
7.3 Address Compression (Optional)
8. Amount Representation Specification
8.1 Basic Format
Stored Value
Actual Amount
8.2 Scientific Notation
8.3 Token Representation
Token
Native Decimal
Conversion Formula
Example
Token
Amount
Stored Value
Scientific Notation
8.4 Compression Strategy for 80-Byte Limit
Rule
Description
Amount
Stored Value
Compressed
Length
Restored Value
Precision Loss
8.5 Precision Loss Analysis
Token
Max Amount
Max Loss
Loss Rate
8.6 Precision Handling
9. Extension Field Specification
9.1 Affiliate Field
9.1.1 Format Definition
Format
Rule
Example
9.1.2 Parsing Rules
9.1.3 Compressed ID Rules
Rule
Description
9.1.4 Examples
Format
Mode
Partner
Fee
Format
Mode
Length
9.1.5 Compressed ID Registry
Compressed ID
Full Name
Description
9.2 Affiliate Registration
9.3 Custom Extensions
10. Security Considerations
10.1 Injection Attack Prevention
10.2 Replay Attack Prevention
10.3 Field Length Limits
Field
Maximum Length
11. Appendix
11.1 Complete Examples
11.1.1 Bitcoin → Ethereum USDT
11.1.2 Ethereum → Bitcoin
11.1.3 Add BTC Liquidity
11.2 Error Code Definitions
Error Code
Description
11.3 Memo Size Limit Reference
Chain
Limit
Description
11.4 BNF Grammar Definition
11.5 Version History
Version
Date
Description
Contributing
Last updated