Sep45No Signing Key Exception
Exception thrown when the domain's stellar.toml is missing the SIGNING_KEY.
SEP-45 requires the server's stellar.toml to contain a SIGNING_KEY field that specifies the server's Ed25519 public key (G... address). This key is used to:
Sign the server's authorization entry in the challenge
Allow clients to verify the challenge came from the legitimate server
The SIGNING_KEY is critical for security:
Clients verify the server's signature on the challenge entries
Without verification, man-in-the-middle attacks would be possible
The same SIGNING_KEY is used for both SEP-10 and SEP-45
This exception is also thrown when requesting client domain authentication and the client domain's stellar.toml is missing SIGNING_KEY.
To resolve this error:
Check the stellar.toml at https://{domain}/.well-known/stellar.toml
Look for SIGNING_KEY field (should be a G... address)
Contact the service provider if the signing key should be available
Example - Handle missing signing key:
try {
val webAuth = WebAuthForContracts.fromDomain("example.com", Network.PUBLIC)
} catch (e: Sep45NoSigningKeyException) {
println("Domain ${e.domain} does not have SIGNING_KEY configured")
// Cannot proceed with authentication - contact service provider
}