Skip to main content
POST
/
v1
/
w3s
/
user
/
sign
/
transaction
Create a challenge to sign transaction
curl --request POST \
  --url https://api.circle.com/v1/w3s/user/sign/transaction \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-User-Token: <x-user-token>' \
  --data '
{
  "walletId": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
  "rawTransaction": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAIAAQROrEbiYfF3zCII9...",
  "transaction": "{\"nonce\":1,\"to\":\"0x9e4ebf23f713268b8e72cd162337f20c536357c9\",\"value\":\"10000000000000000\",\"gas\":\"21000\",\"maxFeePerGas\":\"42000000000\",\"maxPriorityFeePerGas\":\"25000000000\",\"chainId\":80002}",
  "memo": "Transfer USDC to Sam"
}
'
{
  "data": {
    "challengeId": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5"
  }
}

Authorizations

Authorization
string
header
required

Circle's API Keys are formatted in the following structure "PREFIX:ID:SECRET". All three parts are requred to make a successful request.

Headers

X-User-Token
string
required

Unique system generated JWT session token for specific user.

X-Request-Id
string<uuid>

Developer-provided identifier for this request, used for tracing requests in Wallets API logs and the Developer Console, and when communicating with Circle Support. Must be a UUID to appear in logs. Non-UUID values are accepted by the API but are ignored by logging and tracing systems.

A unique identifier, which can be helpful for identifying a request when communicating with Circle support.

Example:

"2adba88e-9d63-44bc-b975-9b6ae3440dde"

Body

application/json

Schema for the request payload to sign a transaction.

walletId
string<uuid>
required

System-generated unique identifier of the resource.

Example:

"c4d1da72-111e-4d52-bdbf-2e74a2d803d5"

rawTransaction
string

Raw transaction string that needs to be signed. Excluded with transaction. Required without transaction. Required to be base64 encoded for NEAR, Solana chains. Required to be hex encoded for EVM chains.

Example:

"AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAIAAQROrEbiYfF3zCII9..."

transaction
string

Transaction object in JSON that needs to be signed. Excluded with rawTransaction. Required without rawTransaction.

NOTE: This field is only supported by EVM chains.

Example:

"{\"nonce\":1,\"to\":\"0x9e4ebf23f713268b8e72cd162337f20c536357c9\",\"value\":\"10000000000000000\",\"gas\":\"21000\",\"maxFeePerGas\":\"42000000000\",\"maxPriorityFeePerGas\":\"25000000000\",\"chainId\":80002}"

memo
string

The human readable explanation for this sign action. Useful for presenting with extra information.

Example:

"Transfer USDC to Sam"

Response

Signature already exists

data
object
required