Give your app or agent
an on-chain budget.
Hard spending limits, human approvals, and a verifiable audit trail β across 8 chains. Your code (or your AI agent) signs only what your policy allows.
npm install @veridex/sdkWhat you'll build
A governed transfer in six lines
Drop this into a browser-side script. Veridex prompts for a passkey and ships a gasless transfer through the public relayer β within a policy you control. Click below to run it live, no install required.
import { createSDK } from '@veridex/sdk';
import { parseEther } from 'ethers';
const sdk = createSDK('base', { network: 'testnet' }); // Base Sepolia + public relayer
await sdk.passkey.register('alice@example.com', 'My Wallet'); // FaceID / TouchID prompt β vault provisioned
const tx = await sdk.transferViaRelayer({
targetChain: 10004, // Base Sepolia (Wormhole chain id)
token: 'native',
recipient: '0x742d35Cc6634C0532925a3b844Bc9e7595f5A234',
amount: parseEther('0.001'),
});
console.log(tx.transactionHash); // on-chain Hub tx hashWant a key with hard spending caps that signs many transfers without re-prompting? Add a
SessionManageron top of this flow β same SDK, two extra setup lines.
What gets recorded
Every executed action produces a signed, exportable trace β the agent's reasoning, the policy verdicts, the signatures, and the on-chain proof. Here's what the trace for the transfer above looks like.
{
"traceId": "trc_01HF8...",
"action": { "type": "transfer", "chain": "base-sepolia", "token": "native", "amount": "0.001" },
"reasoning": "User-initiated transfer, relayed gaslessly.",
"verdicts": [
{ "rule": "spending_limit", "verdict": "allowed", "detail": "0.001 <= daily limit" },
{ "rule": "chain_allowlist", "verdict": "allowed", "detail": "base-sepolia in [base-sepolia]" },
{ "rule": "counterparty", "verdict": "allowed", "detail": "open allowlist" }
],
"signatures": [{ "by": "passkey", "hash": "0xa7c1..." }],
"transactionHash": "0x3f8e...",
"timestamp": "2026-05-19T17:42:11Z"
}The signed Trace API (
sdk.traces.get(traceId)) is on the v1.2 roadmap. Today every transfer returns its on-chaintransactionHash; you can reconstruct the policy verdicts client-side from the same inputs you signed.
Why not just use a wallet?
How it works
Pick one package
Most teams start with the Core SDK. The other packages build on it β adopt them when you need them.
npm install @veridex/sdkView SDK docs β