AUTHENTICATED POST-DEPLOYMENT CONTROL
File origin verification. Register files and let anyone trace them back to you.
Copy the prompt below and paste it to Claude, ChatGPT, or Cursor to integrate TRACE automatically.
Hash + store origin
Give file to anyone
Verify file origin
One command to authenticate and start tracing files.
npx @sekyuriti/trace loginnpm install @sekyuriti/traceAdd verification and registration widgets to your website. No code required.
For your download page. Let users verify files are legitimate.
<iframe
src="https://sekyuriti.build/trace/embed/YOUR_PROJECT_ID?mode=verify"
width="100%"
height="400"
frameborder="0"
style="border: 1px solid #e5e5e5;">
</iframe>Shows list of registered files + drag-drop verification. Users can check if their downloaded file matches.
For your team or creators. Let them register files with a passphrase.
<iframe
src="https://sekyuriti.build/trace/embed/YOUR_PROJECT_ID?mode=register"
width="100%"
height="400"
frameborder="0"
style="border: 1px solid #e5e5e5;">
</iframe>Setup required:
Software Downloads
Verification embed on download page. Users check if .exe/.dmg is legit before running.
Creator Platforms
Registration embed for creators. Verification embed for consumers. Passphrase controls who can register.
Document Verification
Register contracts, certificates, invoices. Recipients verify authenticity instantly.
Register, check, and revoke files from your terminal.
trace register contract.pdf
# Output:
# ✓ File registered
# Trace ID: TRC.A1B2.C3D4
# URL: https://sekyuriti.build/trace?id=TRC.A1B2.C3D4trace check download.exe
# Output:
# ✓ TRACED
# Origin: ACME Corp
# Registered: 2026-01-18
# Times traced: 42trace revoke TRC.A1B2.C3D4
# Output:
# ✓ File revokedProgrammatic access for Node.js applications.
import { createTraceClient } from "@sekyuriti/trace";
const trace = createTraceClient({
apiKey: process.env.TRACE_API_KEY,
});
const result = await trace.register({
filePath: "./contract.pdf",
fileName: "contract.pdf",
description: "Service Agreement v2",
});
console.log(result.trace_id); // TRC.A1B2.C3D4
console.log(result.trace_url); // https://sekyuriti.build/trace?id=...const result = await trace.trace({
filePath: "./download.exe",
});
if (result.result === "traced") {
console.log("Origin:", result.file.issuer_name);
console.log("Registered:", result.file.created_at);
} else if (result.result === "revoked") {
console.log("File was revoked:", result.revoke_reason);
} else {
console.log("File not found in registry");
}await trace.revoke("TRC.A1B2.C3D4", "File replaced with new version");import { hashFile, hashBuffer } from "@sekyuriti/trace";
// Hash a file
const hash = await hashFile("./contract.pdf");
// Hash a buffer
const buffer = Buffer.from("hello world");
const bufferHash = hashBuffer(buffer);REST API for direct integration.
Register a file for tracing.
// Request
{
"file_hash": "sha256-hash-of-file",
"file_name": "contract.pdf",
"file_size": 1234567,
"description": "Service Agreement v2"
}
// Response
{
"trace_id": "TRC.A1B2.C3D4",
"status": "registered",
"trace_url": "https://sekyuriti.build/trace?id=TRC.A1B2.C3D4"
}Check a file's origin by hash.
// Request
{
"file_hash": "sha256-hash-of-file"
}
// Response (traced)
{
"trace_id": "TRC.A1B2.C3D4",
"result": "traced",
"file": {
"file_name": "contract.pdf",
"issuer_name": "ACME Corp",
"created_at": "2026-01-18T12:00:00Z",
"trace_count": 42
}
}
// Response (not found)
{
"result": "not_found"
}Revoke a file registration.
// Request
{
"trace_id": "TRC.A1B2.C3D4",
"reason": "File replaced with new version"
}
// Response
{
"trace_id": "TRC.A1B2.C3D4",
"status": "revoked"
}