Back to Docs

Provenix Installation

Choose your platform and follow the setup steps.

Option A — npm (Recommended)

Recommended

Install via npm for Node.js projects:

npm install @provenix/sdk

Or with yarn:

yarn add @provenix/sdk

Or with pnpm:

pnpm add @provenix/sdk
Was this helpful?

Option B — One-Line Installer

Download and run the installer automatically:

curl -fsSL https://provenix.dev/install.sh | sh

Downloads the CLI tool. The provenix command will be available in Terminal.

Was this helpful?

Option C — Python

pip install provenix

Or with poetry:

poetry add provenix
Was this helpful?

Option 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>
Was this helpful?

Option E — Direct Download

Download the SDK directly:

Was this helpful?

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_KEY

Environment Variable (Recommended):

export PROVENIX_API_KEY=prov_live_your_api_key_here
Was this helpful?

Test the Connection

Node.js:

npx @provenix/sdk doctor

Python:

provenix doctor

CLI:

provenix status

Expected 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.
Was this helpful?

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_abc123xyz
Was this helpful?

Troubleshooting: Invalid API Key

Error: Invalid API key

Fix:

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$
Was this helpful?

Troubleshooting: Connection Refused

Error: Connection refused to api.provenix.dev

Fix:

Check your network/firewall allows outbound HTTPS (port 443).

# Test connectivity
curl -I https://api.provenix.dev/health
# Should return: HTTP/2 200
Was this helpful?

Troubleshooting: Rate Limit Exceeded

Error: Rate limit exceeded (429)

Fix:

You've hit your plan's rate limit. Wait or upgrade your plan.

PlanRate Limit
Free100/hour
Starter400/hour
Growth1,000/hour
Pro5,000/hour
Was this helpful?

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 })
}
Was this helpful?

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)
Was this helpful?

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)
Was this helpful?

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>
  )
}
Was this helpful?

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>
Was this helpful?

Request an SDK or Integration

Need a specific SDK or tool? Let us know and we'll prioritise based on demand.

Need Help?