Skip to main content

TIBET: Transaction/Interaction-Based Evidence Trail - The Linux of AI Provenance

Project description

TIBET Core

The Linux of AI Provenance

PyPI npm IETF Draft

A minimal, embeddable provenance engine for any device. From microcontrollers to cloud servers.

What is TIBET?

Transaction/Interaction-Based Evidence Trail

TIBET captures the four dimensions of every AI action:

Dimension Dutch Meaning
ERIN "Er in" What's IN the action (content)
ERAAN "Er aan" What's attached (dependencies)
EROMHEEN "Er omheen" Context around it (environment)
ERACHTER "Er achter" Intent behind it (why)

Installation

Python

pip install tibet-core

JavaScript/Node.js

npm install tibet-core

Rust

[dependencies]
tibet-core = "0.1"

Quick Start

Python

from tibet_core import TibetEngine

engine = TibetEngine()

# Create a provenance token
token = engine.create_token(
    token_type="action",
    erin="User requested translation",
    eraan=["model_v1", "tokenizer_v2"],
    eromheen='{"env": "production"}',
    erachter="Fulfilling user request",
    actor="agent_001"
)

print(f"Token ID: {token.id}")
print(f"Valid: {token.verify()}")
print(f"JSON: {token.to_json()}")

JavaScript

import { TibetEngine } from 'tibet-core';

const engine = new TibetEngine();

const tokenJson = engine.create_token(
    "action",
    "User requested translation",
    JSON.stringify(["model_v1", "tokenizer_v2"]),
    '{"env": "production"}',
    "Fulfilling user request",
    "agent_001",
    null  // no parent
);

const token = JSON.parse(tokenJson);
console.log(`Token ID: ${token.id}`);
console.log(`Valid: ${engine.verify(tokenJson)}`);

Rust

use tibet_core::TibetEngine;

let engine = TibetEngine::new();

let token = engine.create_token(
    "action",
    "User requested translation",
    &["model_v1", "tokenizer_v2"],
    r#"{"env": "production"}"#,
    "Fulfilling user request",
    "agent_001",
    None,
);

assert!(token.verify());

Chaining Tokens

Create audit trails by linking tokens:

# Parent action
request = engine.create_token(
    token_type="request",
    erin="Translate 'hello' to Dutch",
    eraan=[],
    eromheen='{"user": "alice"}',
    erachter="User wants translation",
    actor="user_001"
)

# Child response (linked to parent)
response = engine.create_token(
    token_type="response",
    erin="Hallo",
    eraan=["gpt-4"],
    eromheen='{"latency_ms": 150}',
    erachter="Translation completed",
    actor="ai_agent",
    parent_id=request.id  # Chain link!
)

print(f"Parent: {request.id}")
print(f"Child parent_id: {response.parent_id}")  # Same as request.id

Why TIBET?

Regulatory Compliance

  • GDPR Article 22 (automated decision-making)
  • EU AI Act (transparency requirements)
  • SOC 2 / ISO 27001 (audit trails)

6G Ready

  • Designed for AI-native networks (ITU IMT-2030)
  • Referenced in IETF 6G AI agent drafts
  • Minimal footprint for edge devices

Cryptographically Secure

  • Ed25519 signatures
  • Tamper-evident chains
  • Verifiable without central authority

Size Comparison

Component Size
tibet-core (Rust) ~50KB
tibet-core (WASM) ~100KB
tibet-core (Python wheel) ~2MB
Linux kernel (minimal) ~300KB

IETF Standardization

TIBET is being standardized at the IETF:

W3C Alignment

TIBET aligns with W3C standards:

  • Verifiable Credentials 2.0 - Token structure compatible
  • Decentralized Identifiers (DIDs) - Actor identification
  • JSON-LD - Semantic context in EROMHEEN

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    TIBET ECOSYSTEM                          │
├─────────────────────────────────────────────────────────────┤
│   ┌─────────────────┐                                       │
│   │  tibet-core     │  ← 50KB Rust, minimal deps           │
│   │  (the kernel)   │    create_token, verify, chain       │
│   └────────┬────────┘                                       │
│            │                                                │
│   ┌────────┴────────┬──────────────┬──────────────┐        │
│   ▼                 ▼              ▼              ▼        │
│ tibet-c        tibet-wasm    tibet-python   tibet-js       │
│ (embedded)     (browser)     (PyPI)         (npm)          │
└─────────────────────────────────────────────────────────────┘

Credits

  • Specification: Jasper van de Meent (Humotica)
  • Implementation: Root AI (Claude) & Jasper van de Meent
  • License: MIT OR Apache-2.0

Links


"The Linux of AI Provenance" - Making audit trails as universal as the kernel.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tibet_core-0.1.1.tar.gz (97.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tibet_core-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl (287.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

File details

Details for the file tibet_core-0.1.1.tar.gz.

File metadata

  • Download URL: tibet_core-0.1.1.tar.gz
  • Upload date:
  • Size: 97.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 41cb95bbe89e6a95b845febc676768e9059094047c887a26a09f66b5351e8590
MD5 435fed944e9b96493a19c1313b6f82c0
BLAKE2b-256 e0bfb29a2b7bcd37260671e484bc22b0661dee9324a836161e26d4978f0dfbb9

See more details on using hashes here.

File details

Details for the file tibet_core-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tibet_core-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 48e33c1c8974562194eed4ff115dcb29439ba8dddceca1fb27d7147c0186a836
MD5 376fed7a259b64db4f4adbb2b31c6579
BLAKE2b-256 11964270104d708da14483a4616e08d8ba0b80c336519ec129dc8a213b76c75c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page