{
"id": "club.stellz.evm.addressControl",
"defs": {
"main": {
"type": "object",
"required": [
"address",
"signature",
"siwe"
],
"properties": {
"siwe": {
"ref": "#siweMessage",
"type": "ref"
},
"alsoOn": {
"type": "array",
"items": {
"type": "integer",
"description": "Chain ID of a Ethereum VM network"
},
"description": "List of all Chain IDs (besides the one in the sign-in message, though you can include it) that the holder of this address is also active on & accepts tokens thru."
},
"address": {
"type": "bytes",
"description": "Ethereum address as bytes (20 bytes)"
},
"signature": {
"type": "bytes",
"description": "Sign in With Ethereum message signature as bytes"
}
}
},
"siweMessage": {
"type": "object",
"required": [
"domain",
"address",
"statement",
"uri",
"version",
"chainId",
"nonce",
"issuedAt"
],
"properties": {
"uri": {
"type": "string",
"format": "uri",
"description": "URI of the application requesting the signature, e.g. 'https://wallet-link.stellz.club'"
},
"nonce": {
"type": "string",
"maxLength": 256,
"minLength": 8,
"description": "Random nonce the message was signed with"
},
"domain": {
"type": "string",
"description": "Domain of the application requesting the signature, e.g. 'wallet-link.stellz.club'"
},
"address": {
"type": "string",
"maxLength": 42,
"minLength": 42,
"description": "Ethereum address in 0x-prefixed, checksummed hex format"
},
"chainId": {
"type": "integer",
"description": "Chain ID of the Ethereum VM network the address is on"
},
"version": {
"enum": [
"1"
],
"type": "string",
"description": "Sign in With Ethereum message version"
},
"issuedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when the message was signed"
},
"statement": {
"type": "string",
"minLength": 78,
"description": "The message shown to the user in their wallet before signing, which MUST be of the format 'Prove control of ${address} to link it to ${did}', where ${address} is the linked Ethereum address in 0x-prefixed, checksummed hex format, and ${did} is the DID of the user."
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}