License Construction

Define the data license to present to the user with metadata for a searchable audit trail.

Data licenses aren't just long legal contracts. Yes, Mr. Lawyer, they include the legal terms, but also bake in properties like metadata to make records easy to program against.

All records are digitally signed (RSA2048) and immutable (can't be changed) at both the data and remote-storage layers. All audit trails begin with a Title record, defining the data asset, with subsequent License records defining permissions of use and compensation. The graphic below shows the immutable data structure and relationships between License records, Title records, and data in your system.


Interestingly, our mobile benchmarks have shown that RSA outperforms EC in signing and verification performance. RSA key generation is slower, but only happens once.

Record Data Structure

TIKI utilizes cryptographic hashing in a reverse linked list structure to create immutability at the data layer —meaning the records cannot be modified, independent of storage device (for example, on a user's phone). The list structure creates a powerful audit trail, digitally signing each record with the user's locally stored private key to ensure authenticity. Records are created and stored client-side, then backed up to immutable storage, creating a second layer of protection and a searchable index.


And yes, if you're familiar with the underlying data structure of a blockchain, it's similar. These types of structures are found all over distributed systems, not just crypto. Ever heard of Git 😝?

Title Records

Audit trails (linked lists) always begin with a Title record and are automatically created by the SDK if they don't exist. The Title record describes the data asset containing:

  • Origin —where the record was created. Defaults to app package (Android & Flutter), bundle identifier (iOS), or reverse FQDN (Web).
  • Timestamp —when the record was created. Automatically handled by the SDK.
  • Tags —a list of metadata tags describing the asset (email_address).
  • Description —an optional human-friendly message.
  • Ptr —a pointer ID to your system. (userId).

License Records

License records, like Title records, are immutable and digitally signed. Meaning, to change terms, or say, if a user decides to opt-out at a later date, a new record in the list is created. The previous record is not modified.

This is purposeful; there are no take-backs. When a license is agreed to, the data described may be used in accordance with the terms. If the user or company changes their mind, you cannot undo the past. Instead, you terminate new usage. A historical audit trail is a powerful tool, and not just for compliance.

License records contain:

  • Title —the hash of the title record (sha3 256).
  • Timestamp —when the record was created. Automatically handled by the SDK.
  • Terms —the legal agreement (👋 lawyer).
  • Use—who's allowed to do what with the asset (*, ad attribution)
  • Expiry —an optional date for the agreement to end.
  • Description —an optional human-friendly message.