Sign-In-With (SIW) Standards
Applications that rely on signMessage
for authenticating users can choose to opt-in to one of the various Sign In With (SIW) standards. If a message follows one of the supported standards, Phantom will verify required fields at the time of signing.
At the time of this writing, Phantom supports:
Sign In With Solana (Specification)
Sign In With Ethereum (EIP-4361)
Sign In With X (CAIP-122)
The serialized format of SIW messages is as follows:
Name | Type | Required? | Description |
---|---|---|---|
|
| The authority that is requesting the signing. | |
|
| The blockchain address that is performing the signing. | |
|
| A human-readable ASCII assertion that the user will sign. It MUST NOT contain | |
|
| A URI referring to the resource that is the subject of the signing (i.e. the subject of the claim). | |
|
| The current version of the message. | |
|
| The Chain ID to which the session is bound, and the network where Contract Accounts MUST be resolved. | |
|
| A randomized token to prevent signature replay attacks. | |
|
| The issuance time. | |
|
| The time at which the signed authentication message is no longer valid. | |
|
| The time at which the signed authentication message starts being valid. | |
|
| A system-specific identifier used to uniquely refer to the authentication request. | |
|
| A list of uris the user wishes to have resolved as part of the authentication by the relying party. |
Sign In With Solana
Please refer to our specification and integration guide on GitHub.
Sign In With Ethereum
The Sign In With Ethereum standard is defined by EIP-4361.
Example
Sign In With X
The Sign In With X standard is defined by CAIP-122. It uses CAIP-10 identifiers for the address
field and CAIP-2 for chain-id
.
While CAIP-122 is technically chain-agnostic, only Ethereum and Solana parsing are supported at this time.
Ethereum Example
Solana Example
Last updated