Skip to main content

EAS Schema

Location Proof Protocol: Core Schema v0.1

Deployments

The core layer of the Location Proof Protocol includes a standard data model. v0.1 of the data model is described in this document. The current working schema is deployed on:

  • Arbitrum One mainnet, Schema 228 / UID 0xba4171c92572b1e4f241d044c32cdf083be9fd946b8766977558ca6378c824e2 (view on Arbitrum EASScan).
  • Celo Mainnet, Schema 59 / UID 0xba4171c92572b1e4f241d044c32cdf083be9fd946b8766977558ca6378c824e2 (view on Celo EASScan).
  • Ethereum Sepolia testnet, Schema 2266 / UID 0xba4171c92572b1e4f241d044c32cdf083be9fd946b8766977558ca6378c824e2 (view on Sepolia EASScan).

Schema Details

FieldDescriptionKeyData TypeSource
IdentifierUnique ID for the location proof.uidbytes32EAS provides this
Prover AddressAddress of the prover.fromaddressSender address, as specified by EAS
Subject IdentifierUnique ID for the subject/event.subjectaddressEAS provides this, however future iterations may require IDs that are not Ethereum addresses (DIDs, for example)
TimestampTime the location proof was created.timestampuint256EAS
Event TimestampTime of the event referenced by the location proof.eventTimestampuint256User input
Spatial Reference SystemCoordinate system within which the object is positioned.srsstringin v0.1, hard coded to "EPSG:4326"
Location TypeA string defining how the location field is structured.locationTypestringDepends on the recipe / strategy, or user input
LocationThe location of the object/event.locationstringDepends on the recipe / strategy, or user input
Proof Recipe IdentifierIndicates the proof recipe used.recipeTypestring[]Defined from a set of registered recipes, to be stored in the @/recipes directory
Proof Recipe PayloadEncoded data specific to the proof recipe, which could include encrypted location data, a zero-knowledge proof, or references to other verification data.recipePayloadbytes[]Specified in recipe definition
Media TypeA unique string referring to the media to be included in a bytes field, Media Data. This pattern is similar to OpenGraph Protocol’s type definition.mediaTypestring[]Defined from a set of supported media types, to be stored in the @/media directory
Media DataA string field allowing the attachment of arbitrary data to a location proof, referenced by CID. This data is intended to be irrelevant to the location proof and not required/utilized in the proof recipe verification.mediaDatastring[]Attached by user
MemoAn arbitrary messagememostringUser input

Raw schema:

uint256 eventTimestamp,string srs,string locationType,string location,string[] recipeType,bytes[] recipePayload,string[] mediaType,string[] mediaData,string memo

Note that this design supports location proofs that include multiple recipe types / recipe payloads and media type / media data.