Swapping

Swapping requires 2 roles: The maker who initiates the swap and the taker who fills the open swap.

There are a few types of swap we can do.

  • STAS for STAS where we swap one STAS token for another.

  • P2PKH for STAS which is swapping BSV for STAS

  • STAS for P2PKH swaps STAS for BSV

The swap transaction

The maker creates a partial transaction

IndexInputOutput

0

Maker offered UTXO

Maker wanted output

The offered UTXO is one the maker owns and the wanted output is a script that pays the maker.

The taker then completes the transaction adding the payment and change.

IndexInputOutput

0

Maker offered UTXO

Maker wanted output

1

Taker UTXO

Taker output

2

Funding UTXO

Change output

Steps

The swap can be done in 2 or 3 steps depending on the need to validate the taker UTXO. If the taker UTXO is a token then this token should be validated by the maker before he signs the transaction.

2 step swap

  1. The maker creates a partial transaction and signs it using sighash single | anyone can pay. The partial transaction is then offered for completion.

  2. The taker then adds his inputs and outputs and signs the transaction then submits it to the blockchain.

3 step swap

  1. The maker creates a partial transaction and offers it for completion.

  2. The taker then adds his inputs and outputs and signs the transaction then returns it to the maker.

  3. The maker then signs the transaction and submits it to the blockchain.

There's an example of using the SDK to create swaps here

Last updated