npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@telaro/evaluator-evm

v0.2.0

Published

EVM-side primitives for the Telaro Bonded Evaluator. Sign and submit Virtuals AgenticCommerceV3 complete/reject transactions from any wallet that holds the Telaro evaluator EOA private key.

Downloads

293

Readme

@telaro/evaluator-evm

EVM-side primitives for the Telaro Bonded Evaluator (Stage 3 W6).

Telaro acts as the evaluator slot on Virtuals' AgenticCommerceV3 contract on Base. When a Solana bonded panel reaches a verdict, the gateway calls complete(jobId, ...) or reject(jobId, ...) on Base signed by the Telaro evaluator EOA. This package owns that signing path so anyone running a Telaro-compatible evaluator can ship the same EVM settlement: Telaro itself, partner juries, or custom verdict pipelines.

Install

pnpm add @telaro/evaluator-evm viem

viem is a peer dependency. It is lazy-loaded inside the package, so importing a helper does not pull in the EVM bundle until you actually sign or encode.

Sign and broadcast in one call

The common path. The function signs with the EOA you pass in and broadcasts on the chain id you pass in.

import { signAndSendVerdict, VIRTUALS_BASE_MAINNET } from "@telaro/evaluator-evm";

const txHash = await signAndSendVerdict({
  verdict: "complete",
  evmJobId: 42n,
  evmChainId: 8453,
  baseRpcUrl: process.env.TELARO_BASE_RPC_URL!,
  virtualsContractAddress: VIRTUALS_BASE_MAINNET,
  evmPrivateKeyHex: process.env.TELARO_EVALUATOR_EVM_PRIVKEY!,
});

console.log("settled:", txHash);

Full runnable example: examples/01-sign-and-send.ts.

Build calldata without broadcasting

For Safe or Squads multisig flows, or for a dry-run log. No signing, no RPC call.

import { encodeVerdictCalldata } from "@telaro/evaluator-evm";

const calldata = await encodeVerdictCalldata({
  verdict: "complete",
  evmJobId: 42n,
});

console.log(calldata); // 0x...

Full runnable example: examples/02-dry-run-calldata.ts.

Pre-flight config check

Catch typos in the contract address, wrong chain id, and malformed key bytes before any tx goes out.

import { validateConfig } from "@telaro/evaluator-evm";

const err = validateConfig({
  evmChainId: 8453,
  virtualsContractAddress: process.env.TELARO_VIRTUALS_CONTRACT!,
  evmPrivateKeyHex: process.env.TELARO_EVALUATOR_EVM_PRIVKEY!,
});

if (err) throw new Error(err);

Full runnable example: examples/03-validate-config.ts.

API surface

| Export | Purpose | |---|---| | signAndSendVerdict(params) | Sign and broadcast a complete or reject call. Returns the tx hash. | | encodeVerdictCalldata(params) | Pure calldata builder. No signing, no broadcast. | | makeWalletClient(params) | Returns a viem WalletClient bound to the EOA. Use when chaining more calls in one flow. | | validateConfig(params) | Pre-flight check. Returns null on success, an error string on failure. | | VIRTUALS_BASE_MAINNET | Constant. 0x238E541BfefD82238730D00a2208E5497F1832E0. | | EVALUATOR_ABI_FRAGMENTS | The two ABI fragments used internally. |

Operating notes

The full runbook for provisioning the EOA, funding it, registering it with Virtuals, and rotating it lives in docs/EVALUATOR_EOA_MAINNET.md. Read it before any mainnet move.

Why a separate package

Before this extraction the viem wiring lived inside @telaro/sacp-mcp-server/src/evaluator-middleware.ts. Anyone who wanted to run a Telaro-compatible evaluator had to fork the gateway or re-derive the calldata by hand. The split lets the gateway depend on this for the wire and lets external builders use the same building block.

License

MIT.