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 | ||
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 |