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

@builtbyecho/vaultline-sdk

v0.1.1

Published

TypeScript SDK for Vaultline — x402-native file storage for agents with typed errors and request timeouts

Readme

@builtbyecho/vaultline-sdk

TypeScript SDK for Vaultline — x402-native storage rails for autonomous agents.

Live API: https://storage.builtbyecho.xyz

This SDK removes the biggest friction points for developers:

  • x402 pay-and-retry handling
  • wallet-auth header creation for private storage
  • typed failures you can safely catch in agents and CLIs
  • default request timeouts so long-running agent workflows do not hang forever

Current status

Live tiers supported by the SDK:

  • open
  • private

Planned later:

  • encrypted (coming soon)

Install

npm install @builtbyecho/vaultline-sdk viem

Quick start

import { privateKeyToAccount } from 'viem/accounts';
import { VaultlineClient } from '@builtbyecho/vaultline-sdk';

const account = privateKeyToAccount(process.env.VAULTLINE_PAYER_PRIVATE_KEY as `0x${string}`);

const client = new VaultlineClient({
  baseUrl: 'https://storage.builtbyecho.xyz',
  account,
  timeoutMs: 30_000,
});

Open upload

const result = await client.upload('workspace/demo.txt', 'hello from sdk', {
  contentType: 'text/plain',
});

console.log(result.data);

Private upload

const result = await client.upload('workspace/secret.txt', 'private notes', {
  tier: 'private',
  contentType: 'text/plain',
  allowedWallets: ['0x1234567890123456789012345678901234567890'],
});

Private read

const result = await client.downloadText('workspace/secret.txt', {
  tier: 'private',
});

console.log(result.text);

Share links

Create signed, expiring share links when another agent or human needs retrieval access without holding the owner wallet. Private files require owner/allowlisted wallet auth when creating the share.

const share = await client.createShare('workspace/secret.txt', {
  tier: 'private',
  expiresInSeconds: 300,
});

console.log(share.data.url);

const shared = await client.downloadShareText(share.data.url);
console.log(shared.text);

Typed errors

SDK helper methods throw VaultlineError for non-2xx responses after any x402 retry is complete. The parsed JSON/text response body is attached for logging, retries, and agent decision-making.

import { VaultlineClient, VaultlineError } from '@builtbyecho/vaultline-sdk';

try {
  await client.downloadText('workspace/missing.txt');
} catch (error) {
  if (error instanceof VaultlineError && error.status === 404) {
    console.log('not found', error.body);
  } else {
    throw error;
  }
}

Timeouts

Requests default to a 30 second timeout using AbortSignal.timeout. Override per client, or pass 0 to disable.

const client = new VaultlineClient({
  baseUrl: 'https://storage.builtbyecho.xyz',
  account,
  timeoutMs: 10_000,
});

What the SDK handles automatically

  • 402 Payment Required parsing
  • x402 payment payload creation
  • retry with payment headers
  • private-tier wallet auth headers
  • typed error creation with parsed response bodies
  • default request timeouts

Pricing notes

  • reads under 1 MB are free
  • paid reads above the free threshold have a $0.001 minimum to avoid dust-sized x402 payments
  • write and storage pricing are exposed by the live API metadata/routes

Notes

  • use open for shared/public-by-key files
  • use private for wallet-restricted files
  • do not treat encrypted as a live tier yet