Provenix Installation
Choose your platform and follow the setup steps.
Option A — npm (Recommended)
RecommendedInstall via npm for Node.js projects:
npm install @provenix/sdkOr with yarn:
yarn add @provenix/sdkOr with pnpm:
pnpm add @provenix/sdkOption B — One-Line Installer
Download and run the installer automatically:
curl -fsSL https://provenix.dev/install.sh | shDownloads the CLI tool. The provenix command will be available in Terminal.
Option C — Python
pip install provenixOr with poetry:
poetry add provenixOption D — Browser (CDN)
Add directly to your HTML:
<script src="https://unpkg.com/@provenix/sdk@latest/dist/browser.min.js"></script>Or use ES modules:
<script type="module">
import { ProvenixClient } from 'https://unpkg.com/@provenix/sdk@latest/dist/esm/index.js'
</script>Option E — Direct Download
Download the SDK directly:
| Platform | Download |
|---|---|
| Node.js | provenix-sdk-node.tgz |
| Browser | provenix-sdk-browser.min.js |
| Python | provenix-py.whl |
Set Your API Key
Node.js / TypeScript:
import { ProvenixClient } from '@provenix/sdk'
const provenix = new ProvenixClient({
apiKey: process.env.PROVENIX_API_KEY // Recommended: use environment variable
})Python:
import os
from provenix import ProvenixClient
provenix = ProvenixClient(api_key=os.environ.get('PROVENIX_API_KEY'))CLI:
provenix config set api-key YOUR_API_KEYEnvironment Variable (Recommended):
export PROVENIX_API_KEY=prov_live_your_api_key_hereTest the Connection
Node.js:
npx @provenix/sdk doctorPython:
provenix doctorCLI:
provenix statusExpected Output:
✓ API key configured
✓ Connection to api.provenix.dev successful
✓ Authentication valid
✓ Plan: Free (2,000 requests/month)
✓ Usage: 0 / 2,000 requests
Provenix is ready to use.Quick Example
// Sign your first content
const result = await provenix.sign({
content: 'AI-generated report for Q1 2026',
metadata: { model: 'gpt-4', department: 'finance' }
})
console.log(result.verifyUrl)
// → https://provenix.dev/verify/mf_abc123xyzTroubleshooting: Invalid API Key
Error: Invalid API keyFix:
Check that your API key starts with prov_live_ or prov_test_ and has no extra spaces.
# Verify your key
echo $PROVENIX_API_KEY | cat -A
# Should show: prov_live_xxxxx$Troubleshooting: Connection Refused
Error: Connection refused to api.provenix.devFix:
Check your network/firewall allows outbound HTTPS (port 443).
# Test connectivity
curl -I https://api.provenix.dev/health
# Should return: HTTP/2 200Troubleshooting: Rate Limit Exceeded
Error: Rate limit exceeded (429)Fix:
You've hit your plan's rate limit. Wait or upgrade your plan.
| Plan | Rate Limit |
|---|---|
| Free | 100/hour |
| Starter | 400/hour |
| Growth | 1,000/hour |
| Pro | 5,000/hour |
Next.js Integration
Sign AI content in API routes or server actions.
API Route (App Router)
// app/api/sign/route.ts
import { ProvenixClient } from '@provenix/sdk'
import { NextResponse } from 'next/server'
const provenix = new ProvenixClient({
apiKey: process.env.PROVENIX_API_KEY!
})
export async function POST(request: Request) {
const { content, metadata } = await request.json()
const result = await provenix.sign({ content, metadata })
return NextResponse.json(result)
}Server Action
// app/actions.ts
'use server'
import { ProvenixClient } from '@provenix/sdk'
const provenix = new ProvenixClient({
apiKey: process.env.PROVENIX_API_KEY!
})
export async function signContent(content: string) {
return await provenix.sign({ content })
}Express Integration
Add provenance signing to your Express API.
// server.js
import express from 'express'
import { ProvenixClient } from '@provenix/sdk'
const app = express()
const provenix = new ProvenixClient({
apiKey: process.env.PROVENIX_API_KEY
})
app.use(express.json())
app.post('/api/sign', async (req, res) => {
try {
const { content, metadata } = req.body
const result = await provenix.sign({ content, metadata })
res.json(result)
} catch (error) {
res.status(500).json({ error: 'Signing failed' })
}
})
app.listen(3000)Django Integration
Sign content in Django views using the Python SDK.
# views.py
import os
from django.http import JsonResponse
from django.views.decorators.http import require_POST
from django.views.decorators.csrf import csrf_exempt
from provenix import ProvenixClient
import json
provenix = ProvenixClient(api_key=os.environ.get('PROVENIX_API_KEY'))
@csrf_exempt
@require_POST
def sign_content(request):
data = json.loads(request.body)
content = data.get('content')
metadata = data.get('metadata', {})
result = provenix.sign(content=content, metadata=metadata)
return JsonResponse(result)React Integration
Call your backend API to sign content, then display the verification badge.
// SignedContent.tsx
import { useState } from 'react'
export function SignedContent() {
const [verifyUrl, setVerifyUrl] = useState<string | null>(null)
const handleSign = async (content: string) => {
const res = await fetch('/api/sign', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ content })
})
const data = await res.json()
setVerifyUrl(data.verifyUrl)
}
return (
<div>
<button onClick={() => handleSign('AI-generated content')}>
Sign Content
</button>
{verifyUrl && (
<a href={verifyUrl} target="_blank" rel="noopener">
Verify ✓
</a>
)}
</div>
)
}Vue Integration
Sign content via your backend and display verification links.
<!-- SignedContent.vue -->
<script setup>
import { ref } from 'vue'
const verifyUrl = ref(null)
async function signContent(content) {
const res = await fetch('/api/sign', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ content })
})
const data = await res.json()
verifyUrl.value = data.verifyUrl
}
</script>
<template>
<div>
<button @click="signContent('AI-generated content')">
Sign Content
</button>
<a v-if="verifyUrl" :href="verifyUrl" target="_blank">
Verify ✓
</a>
</div>
</template>Request an SDK or Integration
Need a specific SDK or tool? Let us know and we'll prioritise based on demand.
Need Help?
Docs: docs.provenix.dev
API Reference: api.provenix.dev/docs
Discord: discord.gg/provenix
Email: support@provenix.dev