prova-eliza-plugin
v0.1.1
Published
elizaOS plugin for Prova — confidential AI inference with on-chain proof. Every model call is hardware-attested in a TEE and verified on Solana, returning a Solscan link.
Maintainers
Readme
prova-eliza-plugin
Verifiable AI for elizaOS agents. Drop this plugin into any elizaOS agent and every model call runs as confidential inference on Prova — hardware-attested inside a TEE, signed by the enclave, and verified on Solana. Each response comes with an on-chain proof your agent can show anyone: a Solscan link.
Agents are making financial decisions, managing treasuries, and executing trades — with no proof of what happened inside the model. This plugin fixes that. Every inference becomes an un-fakeable, on-chain receipt.
What it does
- Registers Prova as your agent's model provider —
TEXT_SMALL,TEXT_LARGE,OBJECT_SMALL,OBJECT_LARGEall route through Prova. No code changes to your agent logic. - Proves every inference on-chain — each response is hardware-attested (NVIDIA + Intel TDX), ECDSA-signed by the TEE, and anchored on Solana by an on-chain verifier program. A fake signature or unregistered key is rejected by Solana, not by us.
- Returns the Solscan link — a
VERIFY_PROOFaction and aPROVA_PROOFprovider expose the receipt and Solscan URL for the most recent inference, so your agent can prove what it did on demand.
Install
npm install prova-eliza-plugin@elizaos/core is a peer dependency (your agent already has it).
Configure
Get a Prova API key at prova.chat/dashboard, then set:
PROVA_API_KEY=prova_sk_your_key_hereThat's the only required setting. Optional overrides (env var or character settings):
| Setting | Default | Description |
| --- | --- | --- |
| PROVA_API_KEY | — | Required. Your prova_sk_… key. |
| PROVA_BASE_URL | https://api.prova.chat/v1 | OpenAI-compatible base URL. |
| PROVA_SMALL_MODEL | deepseek/deepseek-v4-flash | Model for TEXT_SMALL / OBJECT_SMALL. |
| PROVA_LARGE_MODEL | deepseek/deepseek-v4-pro | Model for TEXT_LARGE / OBJECT_LARGE. |
Use
Add the plugin to your character:
import { provaPlugin } from "prova-eliza-plugin";
export const character = {
name: "MyAgent",
plugins: [provaPlugin],
settings: {
secrets: { PROVA_API_KEY: process.env.PROVA_API_KEY },
},
// ...
};That's it. Every runtime.useModel(...) call your agent makes is now confidential and proven on Solana. When a user asks your agent to "prove that" or "show the proof", the VERIFY_PROOF action responds with the on-chain Solscan link.
Reading the proof programmatically
import { provaProofStore } from "prova-eliza-plugin";
const proof = provaProofStore.latest();
// {
// receiptId, attested, model, teeKey,
// reqHash, resHash, solanaTx, solscanUrl, status
// }
console.log(proof?.solscanUrl); // https://solscan.io/tx/...What gets proven on-chain
- Which model ran
- Which TEE hardware signed it
- Hash of the agent's input (
req_hash) - Hash of the model's output (
res_hash) - ECDSA signature from the enclave
- Timestamp, provider
verifiedSignature/verifiedRegistry— both enforced by Solana before the proof is anchored
Verify any proof at prova.chat/verify, or browse the on-chain verifier program:
D4fwqE74azXzC6euWAmDoH6Up1gZEh725odUuZHcCqEB.
How it works
- Your agent calls a model. The plugin sends the request to Prova's OpenAI-compatible API (
stream: false) over yourprova_sk_…key. - Prova runs the inference inside a confidential TEE and returns the response plus
x-prova-*proof headers (receipt id, attestation status, TEE key, request/response hashes). - The proof is recorded locally and the Solana anchor — which lands a few seconds later — is resolved in the background via
GET /v1/receipts/{id}, attaching the transaction id and Solscan link. - The
VERIFY_PROOFaction /PROVA_PROOFprovider surface that link whenever your agent (or its user) wants it.
Compatible with
elizaOS, and any agent framework that consumes elizaOS model providers. Prova's API is OpenAI-compatible, so the same key works from any OpenAI SDK if you're integrating outside eliza.
Links
- Website: prova.chat
- Docs: prova.chat/docs/agents
- Verify a proof: prova.chat/verify
- Get an API key: prova.chat/dashboard
License
MIT © Prova
