SDK v1.14.1+ used with Link UI add support to request arbitrary L1 signatures. This feature provide some flexibility for the developer to request L1 signatures for different actions that are not core to the platform such as like, follow, comment, etc.


This method requires message that an engineer wants to sign and description that presents a user friendly message that will be shown to a user

  message: NonEmptyString,
  description: NonEmptyString


To sign a message an engineer needs to call the method sign()

    message: 'My awesome message',
    description: 'Message that a user will see',

If a user successfully signed a message, link.sign() will be resolved with the value:

    result: '0x0d8705969ea15dac4f684f5f5a7a3447f514b07c96c7a9bb21588ef33821caed63f204c11f0ed69777132c8fa25af62c883627169c7b5b46f23b132db46e7d8d1c'


If a user denied to sign a message, link.sign() will return rejected promise.

Also, there is an error screen that will be appeared if a message cannot be sign as contains forbidden message

Encryption public key

to get an encryption public key an engineer needs to call the method getPublicKey(). This method is available from SDK v1.16.0+


An example for Metamask provider:

If a user allowed to provide a public encryption key, link.getPublicKey() will be resolved with the value:

    result: '1Afjjdub580LjsizQtlDmrSZ+BZIiydkx4BGRb2DDBI='

Did this page help you?