ARC20 AMM

About the ARC20 AMM and how it works on DotSwap.

Swap Transfer Rules

We strictly adhere the construction of the ARC20 swap transactions on DotSwap V2 to the Swap Transfer Rules and Normal Transfer Rules as proposed in the Atomicals Guidebook:

Scenario A: Swapping from BTC to ARC20

When a DotSwap V2 user is swapping from BTC to ARC20:

  • The swapper is the buyer and will use one of their non-ARC20 UTXOs as BTC funds, which will be sent to the liquidity pool.

  • The liquidity pool is the seller and will provide its ARC20 asset, which will be sent to the swapper's address.

Scenario B: Swapping from ARC20 to BTC

When a DotSwap V2 user is swapping from BTC to ARC20:

  • The swapper is the seller and will provide their ARC20 asset, which will be sent to the liquidity pool.

  • The liquidity pool will be the buyer in this case, and will provide its BTC, which will be sent to the swapper's address.

Limitations

There's unfortunately still limitations around the ARC20 swap.

Dust limit

A fundamental constraint is imposed by the dust limit, which determines the minimum size that a BTC output must have in order to be included in a transaction.Typically, it's 546 satoshis for Taproot addresses, which is the most commonly used address type in the Ordinals/Atomicals space.

Given that many popular ARC20 tokens maintain a 1:1 ratio with satoshis, it follows that the practical minimum trading amount for an ARC20 token is 546.

To avoid unforeseeable outcomes, DotSwap took the trade-off and the swap transaction are only allowed to go through when the ARC20 amount in any address after the swap is be at least 546.

Notes:

One possible solution is the Substantiation Factor concept proposed in the Atomicals Guidebook, which essentially allows for arbitrary redefinition of the satoshi-to-ARC20 ratio. We are currently looking into it but are also waiting and exploring for alternative solutions.

Last updated