The main scope of the Guardians feature is to protect users whose accounts have been compromised. Therefore a user can assign another entity (it cannot be another person for now) as their guardian, and this guardian must then co-sign every transaction that the user initiates.
For a better understanding, let’s take a practical scenario where Alice assigns Bob as her guardian. When Alice wants to send a transaction, she signs it and sends it to Bob for his approval. This proposed transaction is held in Bob’s wallet, waiting for his confirmation. Bob then verifies if the transaction is genuinely initiated by Alice or by an impersonator. If confirmed by Alice, Bob signs the transaction; otherwise, he can reject it. Of course, in real life this would require a very tight synchronization between Alice and Bob, which does not come in handy every time.
That’s why we considered automating this process for a better user experience and efficiency, while maintaining maximum security. An implemented solution is using a Trusted Co-Signer (TCS) service as a guardian, based on 2FA validation. All that a user has to do is to use an Authenticator app. For this to work, wallet implementations that offer guardian-setting flows must support this feature. In the case of the xPortal wallet, the device’s application will act as the guardian, thereby negating the need for the TCS service and optimizing communication.