1. 🙋🏾‍♀️ `user`**`inputs`** transaction details (recipient, amount, token etc) and passes inputs to library. 2. 💻 `wallet`**`transforms`** unsafe inputs into validated `TransactionIntent`. 3. 🛠 `library`**`requests`** Radix Core API to build transaction from intent and returns built transaction with human-readable fee to wallet. 4. 🛠 `library`**`signs`** transaction 5. 🛠 `library`**`submits`** signed transaction to Radix Core API which promtly returns initial OK/ERR response, wallet handles this initial response. **Response contains `txID`.** 6. OPTIONAL 💻 `wallet`**`displays`** transaction fee and `txID` and waits for user to confirm transaction with PIN code. 7. 🛠 `library`**`finalizes`** signed transaction with `txID` to Radix Core API which promtly returns initial OK/ERR response, wallet handles this initial response. 8. 💻 `wallet`**`polls`** status of transaction (using txID from step 5), using appropriate library api, and informs user of final CONFIRMED/REJECTED result. 9. 🙋🏾‍♀️ `user`**`acts`** on any failures, e.g. presses "Retry"-button, if prompted with one because of network connection issues during step 7.