Skip to content

Security: raintree-technology/perps

Security

SECURITY.md

Security Policy

Reporting a Vulnerability

If you discover a security vulnerability in this project, please report it responsibly.

Do not open a public GitHub issue for security vulnerabilities.

Instead, email: support@raintree.technology

Include:

  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (if any)

We will review reports as time permits. There are no guaranteed response times.

Scope

This policy covers:

  • The perps CLI and its exchange adapters
  • The agent gateway HTTP server
  • The credential vault and secret handling
  • The onboarding and setup wizard flows

Credential Handling

  • Private keys and API secrets are stored encrypted in ~/.perp/credentials-vault.json.
  • The CLI is designed to avoid logging or outputting private keys or secrets, but no guarantees are made. Users are responsible for securing their own credentials and environments.
  • .env files containing credentials are gitignored by default.
  • The agent gateway requires explicit opt-in (PERPS_AGENT_ALLOW_MAINNET=1) for mainnet execution.

Disclaimer

This software is provided under the MIT License, without warranty of any kind. The authors and contributors accept no liability for financial losses, credential exposure, or any other damages arising from the use of this software. You are solely responsible for your own security practices and trading decisions.

Dependency Auditing

Run pnpm audit to check for known vulnerabilities in the dependency tree.

Audit process

  1. Direct dependencies — every package in dependencies and devDependencies should be a well-known, actively maintained project. Prefer @noble/curves and @noble/hashes for cryptographic primitives (audited, no native deps).
  2. Transitive vulnerabilities — some upstream packages (e.g. near-api-js, pmxtjs) pull in legacy sub-dependencies with known advisories. These are outside our control but should be monitored for upstream fixes.
  3. Typosquat checks — verify scoped packages (@nktkas/hyperliquid, pmxtjs) against their official repos before upgrading.

Cryptographic libraries

Use case Package Notes
secp256k1 signing @noble/curves Audited, pure JS, actively maintained by Paul Miller
Keccak-256 hashing @noble/hashes Same author, same audit lineage
Ed25519 (NEAR) near-api-js (KeyPair) Official NEAR SDK
EVM signatures viem Uses @noble/* internally

Known transitive advisories (not fixable from this repo)

Advisory Package Via Severity Status
GHSA-3ppc-4f35-3m26 minimatch <10.2.1 pmxtjs > jest > glob High Awaiting upstream fix
GHSA-378v-28hj-76wf bn.js <5.2.3 near-api-js > elliptic Moderate Awaiting upstream migration
GHSA-848j-6mx2-7j84 elliptic <=6.6.1 near-api-js, pmxtjs Low No patch; elliptic appears unmaintained

Supported Versions

Security updates are applied to the latest release only.

There aren’t any published security advisories