Skip to content

Transaction examples

In this section, we provide examples of basic transactions on the Symbolic Ledger.

Simple transfer

An example of a transfer of value transaction from one address to another.

    flowchart LR
        TxBody["A's spending condition"]

        I1(("A
        "))

        I2(("A
        "))

        I3(("A
        "))

        O1(("B
        "))

        O2(("A
        "))

        I1 -- "100 ada" --> TxBody
        I2 -- "10 ada" --> TxBody
        I3 -- "27 ada" --> TxBody
        TxBody -- "90 ada" --> O1
        TxBody -- "47 ada" --> O2

Token collection minting

An example of a transaction that mints a collection of tokens (with no possibility of further minting) and distributes them to different addresses. First, we perform the "funding transaction" (to create a UTxO at the address), then we mint and distribute the tokens.

    flowchart LR
        TxBody["X's spending condition"]

        I1(("X
        "))

        O1(("X
        "))

        O2(("T
        "))

        I1 -- "1 ada" --> TxBody
        TxBody -- "1 ada" --> O1
        TxBody -- "0" --> O2
    flowchart LR
        TxBody["Spends a particular input reference"]

        I1(("T
        "))

        O1(("A
        "))

        O2(("B
        "))

        O3(("C
        "))

        O4(("C
        "))

        I1 -- "0" --> TxBody
        TxBody -- "35 **T.1**" --> O1
        TxBody -- "97 **T.2**" --> O2
        TxBody -- "3 **T.2**"  --> O3
        TxBody -- "16 **T.3**" --> O4

Atomic swap

An atomic swap is a direct exchange of tokens (of different kinds) between two or more parties. The implementation consists of two transactions that form a balanced batch.

    flowchart LR
        TxBody["A's spending condition"]

        I1(("A
        "))

        O1(("A
        "))

        O2(("A
        "))

        I1 -- "150 ada" --> TxBody
        TxBody -- "50 ada" --> O1
        TxBody -- "100 USDT" --> O2
    flowchart LR
        TxBody["B's spending condition"]

        I1(("B
        "))

        O1(("B
        "))

        O2(("B
        "))

        I1 -- "135 USDT" --> TxBody
        TxBody -- "35 USDT" --> O1
        TxBody -- "100 ada" --> O2