@oceanalt/core
v0.2.0
Published
Client for OceanAlt's Trust Decision Core: pre-settlement decision, payee/endpoint screening, calldata intent check, offline verification of signed x402 payment requirements, secret-exfiltration guard and anomaly signals. No keys, no custody, no telemetry
Maintainers
Readme
@oceanalt/core
Client for OceanAlt's Trust Decision Core — the step before an AI agent's money moves.
decide({ to, amountUsdc?, network? })→allow | review | declinewith reason codes and evidence (free, no key)endpoint(url)→ is this payment endpoint on a phishing / scam list? (address lists cannot see impersonated endpoints)intentCheck({...})→ decode EVM calldata or a whole Solana transaction and compare with the declared payment (approve / SetAuthority dressed as a payment →mismatch; undecodable →unknown, neversafe)verifyRequirements(paymentRequired)→ offline Ed25519 verification of signed x402 payment requirements (tamperedpayToin transit →digest_mismatch)guardOutbound(url, body)→ secret-exfiltration scan (private keys, API keys, mnemonics) before a request leaves the agentANOMALY→ stable anomaly vocabulary (agent.anomaly.*) for your own monitoring
import { OceanAltClient } from "@oceanalt/core";
const client = new OceanAltClient({ onRecord: (r) => console.log(r) });
const d = await client.decide({ to: "0x93c67dabee533a9689a1e3a67201352b6b29dcd4", network: "eip155:8453" });
if (d.decision !== "allow") throw new Error(`hold: ${d.reason_code}`);No keys, no custody, no telemetry unless you forward onRecord yourself. network accepts chain names or CAIP-2 ids. OceanAlt is not a licensed institution and not an AML/KYC provider; allow means "no risk signal found now", never "safe". Docs: https://oceanalt.com/en/api-docs · spec: https://oceanalt.com/en/rap
