org.impactindexer.link.attestation

gainforest.earth

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "eip712Message": {
      "description": "The EIP-712 typed data message structure",
      "properties": {
        "chainId": {
          "description": "The chain ID as a string (for bigint compatibility, max uint256)",
          "maxLength": 78,
          "type": "string"
        },
        "did": {
          "description": "The ATProto DID being linked",
          "maxLength": 2048,
          "type": "string"
        },
        "evmAddress": {
          "description": "The EVM address being linked (0x-prefixed)",
          "maxLength": 42,
          "minLength": 42,
          "type": "string"
        },
        "nonce": {
          "description": "Replay protection nonce as a string (for bigint compatibility)",
          "maxLength": 78,
          "type": "string"
        },
        "timestamp": {
          "description": "Unix timestamp as a string (for bigint compatibility)",
          "maxLength": 78,
          "type": "string"
        }
      },
      "required": [
        "did",
        "evmAddress",
        "chainId",
        "timestamp",
        "nonce"
      ],
      "type": "object"
    },
    "main": {
      "description": "An attestation linking an ATProto DID to an EVM wallet address, signed with EIP-712.",
      "key": "tid",
      "record": {
        "properties": {
          "address": {
            "description": "The EVM wallet address (checksummed or lowercase, 0x-prefixed)",
            "maxLength": 42,
            "minLength": 42,
            "type": "string"
          },
          "chainId": {
            "description": "The EVM chain ID where the signature was created",
            "minimum": 1,
            "type": "integer"
          },
          "createdAt": {
            "description": "Timestamp when the attestation was created",
            "format": "datetime",
            "type": "string"
          },
          "message": {
            "description": "The EIP-712 typed data message that was signed",
            "ref": "#eip712Message",
            "type": "ref"
          },
          "signature": {
            "description": "The EIP-712 signature in hex format (0x-prefixed, 65 bytes for ECDSA, longer for smart contract sigs)",
            "maxLength": 1000,
            "minLength": 132,
            "type": "string"
          },
          "signatureType": {
            "description": "The type of signature: eoa (EOA/ECDSA), erc1271 (smart contract), erc6492 (counterfactual)",
            "knownValues": [
              "eoa",
              "erc1271",
              "erc6492"
            ],
            "maxLength": 10,
            "type": "string"
          }
        },
        "required": [
          "address",
          "chainId",
          "signature",
          "message",
          "signatureType",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "org.impactindexer.link.attestation",
  "lexicon": 1
}

Validate Record

Validate a record against org.impactindexer.link.attestation

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:qoti4acfmc5wg6zzmtix6hse
CID
bafyreichqo42fny4f3ug3usfayrzha4zgcxwluvhih3xfpivxdfg5nsmuu
Indexed At
2026-02-18 19:48 UTC
AT-URI
at://did:plc:qoti4acfmc5wg6zzmtix6hse/com.atproto.lexicon.schema/org.impactindexer.link.attestation

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A verifiable link between an ATProto DID and an EVM wallet address, proven via a cryptographic signature. Currently supports EOA wallets via EIP-712 typed data signatures; the proof field is an open union to allow futur…

  • A verifiable link between an ATProto DID and an EVM wallet address, with platform attestation. The user proves wallet ownership via EIP-712 signature, and the platform co-signs to attest the linking occurred through a t…

  • network.attested.signature objectnot from the namespace authority

    An inline attestation: an ECDSA signature over a canonical attestation CID, embedded directly in a record's `signatures` array. The CID is computed from the record (signatures stripped), this entry's metadata (cid/signa…

  • Common type definitions for cryptographic signatures attached to records, per the ATProtocol Attestation Specification.

Lexicon Garden

@