Blocto wallet will NOT follow ERC-1654 in July. The change is going to affect the signature verification when you’re using personalSign. For compatibility with newer and current versions of Blocto app, we have already updated related libs and you just need to update one-line code to upgrade it, which is usually on your backend.

Migration Guide

  1. If you’re using @dapperlabs/dappauth from npmjs, please update to @blocto/dappauth with version 2.1.0
package.json

{
  "dependencies": {
    "@blocto/sdk": "0.4.8",
-   "@dapperlabs/dappauth": "2.0.5",
+   "@blocto/dappauth": "2.1.0",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-scripts": "4.0.0",
    "web3": "1.8.0"
  },
}
  1. If you’re using Golang, please update to github.com/portto/dappauth instead.
package ...

- import "github.com/dapperlabs/dappauth"
+ import "github.com/portto/dappauth"

...
  1. You have your own signature verification code

Please check the newer method first → [The New Method: EIP-191 version 0x00 + version 0x45 ](https://portto.notion.site/The-New-Method-EIP-191-version-0x00-version-0x45-3dc9573c29104465a2b6ea8757b11373). For backward compatible of older Blocto apps, you also need to support ERC-1654 which means:

Step 1. verify by calling ERC-1271 isValidSignature and the parameter hash is Keccak256(0x19 + 0x45 (E) + <thereum Signed Message:\\n" + len(message) + message)

Step 2. if step 1 returns false, then call ERC-1271 isValidSignature and the parameter hash is Keccak256(message)

Step 3. if both step 1 & 2 are failed, then we can say the signature is mismatch.

You can refer to the changes of verification libs: