@startuml Actor Sender as S Actor Receiver as R group Blind an UTXO R ->> R: Wallet::blind note right of R: blinded UTXO is sort of "RGB address" end group Send blinded UTXO R ->> S: blinded UTXO note over R,S: through arbitrary communication channel end group Start sending process S <<- S: Wallet::send(**donation=false**) note left of S: send consignment to the receiver\ndon't broadcasting the TX yet end S ->> R: consignment group Check consignment R ->> R: Wallet::refresh note right of R: validate consignment note right of R: ACK if validation succeeds end R ->> S: ACK group Send RGB assets S <<- S: Wallet::refresh note left of S: check if receiver ACKed\nbroadcast the TX if so end group Consume RGB transfer R ->> R: Wallet::refresh note right of R: check TX confirmations end group Consume RGB transfer S <<- S: Wallet::refresh note left of S: check TX confirmations end @enduml