
Security News
vlt 1.5.0 Adds Agent Skills Management
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.
@deepfirstsearch/agent-pay-cdp
Advanced tools
Coinbase CDP Server Wallet accounts as Agent Safe payers: x402 payments signed by CDP, inside an owner-signed budget
Use a Coinbase CDP Server Wallet v2 account as an Agent Safe payer: your agent pays x402 APIs in USDC, the key stays in CDP, and every payment stays inside the owner's rules (allowlisted payee, pinned price, sealed plan, optional on-chain budget).
Beta, unaudited. Not affiliated with Coinbase.
npm install @deepfirstsearch/agent-pay-cdp @deepfirstsearch/agent-pay @coinbase/cdp-sdk viem
import { CdpClient } from "@coinbase/cdp-sdk";
import { createAgentPay, MerchantRegistry } from "@deepfirstsearch/agent-pay";
import { cdpPayer } from "@deepfirstsearch/agent-pay-cdp";
const cdp = new CdpClient(); // reads CDP_API_KEY_ID, CDP_API_KEY_SECRET and CDP_WALLET_SECRET
const payer = await cdpPayer({ cdp, name: process.env.CDP_ACCOUNT_NAME ?? "my-agent" }); // holds a little USDC on Base
const pay = createAgentPay({
registry: new MerchantRegistry([{
origin: "https://x402.coinstats.app",
payTo: "0xa2AD8183209E5d2F7f0d8F995f5601a0bb5100c7", // CoinStats' Base address, as in its 402
network: "eip155:8453",
maxPerTx: 2_000n, // never more than 0.002 USDC per call
pricePin: 1_000n, // 0.001 USDC, the published price
}]),
policy: { allowedNetworks: ["eip155:8453"], periodBudget: { amount: 100_000n, periodMs: 86_400_000 } },
payer: () => payer,
session: { readsUntrustedInput: true, accessesSensitiveData: false, canPay: true },
});
const plan = pay.commitPlan([{ origin: "https://x402.coinstats.app", maxSpend: 10_000n }], 60 * 60_000);
const res = await pay.fetch("https://x402.coinstats.app/coins/bitcoin?currency=USD", {}, { plan });
console.log(res.status, res.payment?.settlement.transaction);
cdpPayer({ cdp, name }) or cdpPayer({ cdp, address }) fetches an existing account with cdp.evm.getAccount. Create it once with cdp.evm.getOrCreateAccount({ name }).cdpPayer wraps the CDP account's own signTypedData with viem's toAccount; we verified its signatures recover to the account address on Base mainnet.signTransaction and signMessage throw and there is no raw-hash sign. A compromised agent can't use this signer to send transactions or sign arbitrary hashes.signEvmTypedData for USDC's TransferWithAuthorization on Base, and keep the API key and wallet secret in the payment service, never in the model's process.vaultFunder and the owner CLI in @deepfirstsearch/agent-pay) so a compromised machine still can't exceed what the owner signed.npm ci && npm test # offline: the real CdpClient against a local stand-in for CDP's Wallet API, signing with a local key
FAQs
Coinbase CDP Server Wallet accounts as Agent Safe payers: x402 payments signed by CDP, inside an owner-signed budget
We found that @deepfirstsearch/agent-pay-cdp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.

Security News
Rust 1.100 will add opt-in dependency cooldowns to Cargo, giving security scanners and maintainers time to catch malicious crate releases.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.