ProofMode

Capture, share, and preserve verifiable photos and videos

ProofMode Metadata Detail

Learn about the data that is available through Proofmode

This page provides details on the fields available in the JSON and CSV files that ProofMode generates and includes within a ProofMode archive (ZIP file).

You can find the “living version” of this document as a Google Sheet or see it in the table below.

We have also published the ProofMode v1 JSON Schema.

Value Type Value Description Value example How could this value be used?
File Hash SHA256 Sha256 hash of the media file, picture or video. 9356a357139168599b.... Hashing is useful for showing that the file wasn't changed. "Hashing" means applying a mathematical algorithm to produce a unique value (most often displayed as a string of hexadecimal characters) that represents any set of bytes, such as your photo or video files. Any file can be fed into the hash function, and the output is always a unique fingerprint of sorts that should match if the file has not been changed, providing verification of the integrity of the file.
File Created If possible, when the media file was created (JPG or MP4) Wednesday March 21 2018 7:11:50 PM Eastern Daylight Time
File Modified Date & time when the media file (JPG or MP4) was last modified. Wednesday March 21 2018 7:11:50 PM Eastern Daylight Time
File Path Where the file is on the phone's internal storage. /DCIM/Camera/IMG_20180321_191140.jpg
Proof Generated Date and time when the "proof" file (CSV) was generated. Wednesday March 21 2018 7:11:55 PM Eastern Daylight Time sometimes there is a lag between this and when the file was modified, but to verify that proof is actually correct, this should be very close to the date of when the file was modified
Hardware Phone model Google Pixel all of these values can be useful if an individual who created the media wants to prove that they were actually the one who did so, by correlating to a device in their possession (which should also have PGP keys)
Manufacturer Phone manufacturer Google
DeviceID The actual device ID is scrambled but the value should remain the same across proofs from the same device. 5icohzegzngac7k6tysftnltm
Wifi MAC MAC address of the phone's WiFi antenna, a unique identifier assigned to a network interface controller (NIC). ac:37:43:4f:35:a7
ScreenSize Diagonal screen size in pixels 4.72572468
Network Is there a network connection? - "Connected" or "0" Connected
NetworkType "Wifi", "Mobile data", or "noNetwork" Mobile Data LTE this shows how the phone was connected or if it was not connected at all
DataType needs to be fixed, always showing "Mobile data" Mobile Data LTE
CellInfo Nearest cell towers [{"cellId":10557185 "tac":22530 "dbm":-106} {"cellId":2147483647 "tac":2147483647 "dbm":-108} {"cellId":2147483647 "tac":2147483647 "dbm":-102} {"cellId":2147483647 "tac":2147483647 "dbm":-99} {"cellId":2147483647 "tac":2147483647 "dbm":-101} {"cellId":2147483647 "tac":2147483647 "dbm":-100}] if this can be reproduced, it is another method of geolocation
IPv4 This is the local/private IP address of the device, (not the www facing IP). 192.168.0.61 10.30.10.6 10.6.10.6
IPv6 IPv6 is the most recent version (version 6) of Internet Protocol (IP). FE80::E853:75FF:FE09...
Location.Provider usually GPS but without GPS will look at wifi/cell towers gps
Location.Latitude Get the latitude (North - South), in degrees. Range: 0 to 90 north of equator, 0 to -90 south. 40.8630602
Location.Longitude The longitude (East - West), in degrees. Range: 0 to 180 eastward; and 0 to -180 westward. -73.93083805
Location.Accuracy Margin of error: the device is within X meters of the reported coordinates - the lower the value, the chance for accuracy is higher. 21
Location.Bearing Bearing is the horizontal direction of travel of the device, and is not related to the device orientation. Range (0.0, 360.0]. If this location does not have a bearing then 0.0 is returned. 0 unclear, let's figure this out- do you get it if you are using satellite gps instead of Google's service?
Location.Speed et the speed if it is available, in meters/second over ground. If this location does not have a speed then 0.0 is returned. 0
Location.Altitude not reliable, it's used for technical purposes of how gps works -1
Location.Time Unix format time stamp for when the location was generated. (the closer to file creation time, the better) 1521672748000
SafetyCheck This blob of data can be decoded and you can find it would contain the hash of the media file, signed by Google ...
SafetyCheckBasicIntegrity If the value of basicIntegrity is true, then the device running your app likely wasn't tampered with, but the device hasn't necessarily passed Android compatibility testing. TRUE This value can be used to show that the picture was not taken on a rooted/modified device. Rooting a device is one way a signature could be spoofed
SafetyCheckCtsMatch If the value of ctsProfileMatch is true, then the profile of the device running your app matches the profile of a device that has passed Android compatibility testing TRUE
SafetyCheckTimestamp this is when the google safety check is performed Wednesday March 21 2018 7:11:55 PM Eastern Daylight Time
Language (language the phone is set to when you first started it up) English
Locale (country the phone is set to when you first started it up) USA
Notes Place holder, no UI to use.
ProofGenerationInfo Automatic / Manual: Did the user trigger it? Automatic / Manual