Generates a challenge for signing a message from a specified user-controlled wallet. This endpoint supports Ethereum-based blockchains (using EIP-191) and Solana (using Ed25519 signatures). Note that Smart Contract Accounts (SCA) are specific to Ethereum and EVM-compatible chains. The difference between Ethereum's EOA and SCA can be found in the account types guide. You can also check the list of Ethereum Dapps that support SCA: https://eip1271.io/.
System-generated unique identifier of the resource.
Indicator of whether the input message is encoded by hex. If TRUE, then the message should be a hex string. By default, it is False.
The user friendly message that needs to be signed. If it is a hex string, encodedByHex needs to be TRUE. The hex string should start with “0x” and have even length.
The human readable explanation for this sign action. Useful for presenting with extra information.
Unique system generated JWT session token for specific user.
Developer-provided parameter used to identify this request. Useful when communicating with Circle Support.
1from circle.web3 import user_controlled_wallets
2from circle.web3 import utils
3
4client = utils.init_user_controlled_wallets_client(api_key=key)
5
6api_instance = user_controlled_wallets.SigningApi(client)
7request = user_controlled_wallets.SignMessageRequest.from_dict({
8 "walletId": "290926b7-3790-5789-a7a9-594a9b99f1cc",
9 "message": "Hello World",
10 "memo": "test",
11})
12response = api_instance.sign_user_message(x_user_token=user_token, sign_message_request=request)
13print(response.json())
14
1{
2 "data": {
3 "challenge_id": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5"
4 }
5}