XIP-44: Smart Contract Wallet Support

1 Like

Hey just some thoughts on the Smart Contract Account (SCA) adoption in XMTP.

I think using EIP-1271 as the standard to verify user signatures doesn’t achieve the stated goals:

The above proposal aims to get Smart Contract Wallet support in XMTP with minimal migration overhead, and without introducing new sign-up fees, while also minimizing developer integration complexity.

If the XIP continues with 1271 then there is an implicit sign-up fee for new users. 1271 assumes that the contract wallet is already deployed. Meaning either the user or the wallet will have to pay a gas fee before they can create an XMTP identity with their SCA.

If instead EIP-6492 (an extension of 1271 that allows counterfactual accounts to create verifiable signatures) could be implemented then users could create an XMTP before they deploy their account or complete their first transaction.

The security assumptions are much the same as with 1271 (given that 6492 is an extension). EIP-6492 is final & stable with fairly good adoption given that it is the default signature verification in viem & has been for almost a year.

Implementation-wise it would also be very simple for both nodes & clients as it is a single call to the UniversalSigValidator contract (see the Reference Implementation section of the EIP). This contract will very any signature that conforms to 6492, 1271 or erecover, so the signature checking code for each could be unified into this single call.

To the best of my knowledge, nothing else about the XIP would need to change to adopt 6492 & the goal of fee-less SCA sign-up would be achieved with little extra effort.

2 Likes

Can only post two links per post so I thought I would leave some helpful links:

1 Like