# Location Proof Protocol: Core Data Model v0.1 ## Core Layer 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 Ethereum Sepolia testnet, UID `0xd928da08c10180b639e31c5f46acf4ea011d88ec7ac44bd95f32385e2d66032b` ([view on EASScan](https://sepolia.easscan.org/schema/view/0xd928da08c10180b639e31c5f46acf4ea011d88ec7ac44bd95f32385e2d66032b)). | Field | Description | Key | Data Type | Source | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------------------------------- | | Identifier | Unique ID for the location proof. | `uid` | `bytes32` | EAS provides this | | Prover Address | Address of the prover. | `from` | `address` | Sender address, as specified by EAS | | Subject Identifier | Unique ID for the subject/event. | `subject` | `address` | EAS provides this, however future iterations may require IDs that are not Ethereum addresses (DIDs, for example) | | Timestamp | Time the location proof was created. | `timestamp` | `uint256` | EAS | | Event Timestamp | Time of the event referenced by the location proof. | `eventTimestamp` | `uint256` | User input | | Spatial Reference System | Coordinate system within which the object is positioned. | `srs` | `string` | in v0.1, hard coded to "EPSG:4326" | | Location Type | A string defining how the location field is structured. | `locationType` | `string` | Depends on the `recipe` / strategy, or user input | | Location | The location of the object/event. | `location` | `bytes` | Depends on the `recipe` / strategy, or user input | | Proof Recipe Identifier | Indicates the proof recipe used. | `recipeType` | `string[]` | Defined from a set of registered recipes, to be stored in the @/recipes directory | | Proof Recipe Payload | Encoded data specific to the proof recipe, which could include encrypted location data, a zero-knowledge proof, or references to other verification data. | `recipePayload` | `bytes[]` | Specified in recipe definition | | Media Type | A 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. | `mediaType` | `string[]` | Defined from a set of supported media types, to be stored in the @/media directory | | Media Data | A `bytes` field allowing the attachment of arbitrary data to a location proof. This data is intended to be irrelevant to the location proof and not required/utilized in the proof recipe verification. | `mediaData` | `bytes[]` | Specified in media type definition | | Memo | An arbitrary message | `memo` | `string` | User input | Note that this design supports location proofs that include multiple recipe types / recipe payloads and media type / media data.