Comment on page

integrityCid

The integrityCid is a unique identifier representing the IPFS address of a file containing the integrity proof of the content collected and signed by a device.
The integrity proof serves as a digital fingerprint that verifies the authenticity and integrity of the content file, ensuring that it has not been tampered with or altered in any way since its creation. The integrity proof should include metadata about the content file, such as its MIME type, timestamp, device information, geolocation data, and a proof hash. This metadata provides crucial context and attests to the content's provenance. The integrityCid provides a secure and reliable method to store and retrieve the content's integrity proof, guaranteeing its trustworthiness and facilitating validation of the content's origin throughout its lifecycle.

Integrity Proof Specification

Here's the spec for the integrity proof in plain text with bullet points:
  • asset_mime_type: (string) The content's type expressed using a MIME format
  • caption: (string) A caption or description of the content file
  • created_at: (timestamp) Creation time of the content file
  • device_name: (string) The name of the device used to create the content file
  • information: (JSON) Available fields see the table below
  • location_latitude: (number) The latitude of the content's location
  • location_longitude: (number) The longitude of the content's location
  • proof_hash: (string) The proof hash for the content
  • recorder: (string) The name of the recorder used to create the content
  • spec_version: (string) The version of the specification

Information

The "information" section in the integrity proof contains details about the device and its environment at the time of content creation. This includes data about the app used to capture or create the content, such as the app's name, identifier, version, and build number. Additionally, it provides information about the device itself, including the device name, manufacturer, platform, operating system, and unique identifier.
The section also covers the device's battery level, charging status, memory usage, and available disk space depending on the permission granted by the register. Finally, geolocation information, such as latitude and longitude, is included to specify the location of the content when it was created. This comprehensive set of data helps to ensure the integrity of the content and provides a detailed context for its origin.
Field
Type
Description
device.app_build
string
The app build number
device.app_id
string
The app identifier
device.app_name
string
The name of the app
device.app_version
string
The app version
device.battery_level
number
The device's battery level at the time of content creation
device.device_name
string
The name of the device
device.disk_free
number
The available disk space on the device
device.disk_total
number
The total disk space on the device
device.is_charging
boolean
Whether the device is charging or not
device.is_virtual
boolean
Whether the device is virtual or physical
device.manufacturer
string
The device manufacturer
device.mem_used
number
The memory used on the device
device.operating_system
string
The operating system of the device
device.os_version
string
The operating system version
device.platform
string
The platform of the device
device.user_device_name
string
The user-defined device name
device.uuid
string
The unique device identifier
geolocation.geolocation_latitude
number
The latitude of the content's location
geolocation.geolocation_longitude
number
The longitude of the content's location

Example of Proof Metadata

The following is an example of the proof metadata you may find following the integrityCid:
{
"asset_mime_type": "image/png",
"caption": "Beautiful sunset",
"created_at": 1693309348713,
"device_name": "iPhone13,3",
"information": {
"device.app_build": "850",
"device.app_id": "io.numbersprotocol.capturepro",
"device.app_name": "CapturePro",
"device.app_version": "1.25.3",
"device.battery_level": 0.599999993827392,
"device.device_name": "iPhone13,3",
"device.disk_free": 219000034311,
"device.disk_total": 511762931712,
"device.is_charging": true,
"device.is_virtual": false,
"device.manufacturer": "Apple",
"device.mem_used": 58761233,
"device.operating_system": "iOS",
"device.os_version": "16.1",
"device.platform": "iOS",
"device.user_device_name": "iPhone",
"device.uuid": "1A2B3C4D-56EF-78AB-90CD-1234E5F6A7B8",
"geolocation.geolocation_latitude": 34.052235,
"geolocation.geolocation_longitude": -118.243683
},
"location_latitude": 34.052235,
"location_longitude": -118.243683,
"proof_hash": "5c1234ef67g8h901i2j3k4l56m7890nop1q2r3s4t5u6v7w8x9y0zab1c2d3e4f5",
"recorder": "CapturePro",
"spec_version": "2.1.0"
}