
Research
/Security News
77 Firefox Extensions Linked to Crypto Wallet and Credential Theft
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.
@ramp-kit/server
Advanced tools
Zero-dependency production backend for @ramp-kit/core: server-side API-key proxy with strict endpoint allowlist, plus Etherfuse/Manteca webhook signature verification (HMAC-SHA256, RFC 8785 canonicalization)
Zero-dependency production backend for @ramp-kit/core. Two jobs:
Plain Node (node:http, node:crypto) — no framework, no dependencies.
Node ≥ 20.
npm install @ramp-kit/server
import { createRampServer } from "@ramp-kit/server";
createRampServer({
proxy: {
apiKey: process.env.ETHERFUSE_API_KEY!,
environment: "production", // sandbox | production
// pathPrefix: "/etherfuse", // default
// allowSimulation: true, // sandbox-only; hard-blocked in production
},
webhooks: {
etherfuseSecret: process.env.ETHERFUSE_WEBHOOK_SECRET!,
onEvent: (type, entity) => {
// order_updated | swap_updated | customer_updated | kyc_updated | …
queue.push({ type, entity });
},
},
}).listen(8787);
The frontend then targets the proxy instead of the provider:
new EtherfuseProvider({ apiKey: "", baseUrl: "https://api.myapp.com/etherfuse" });
Or mount the handlers in an existing Node server: createRampProxy(config)
and createEtherfuseWebhookHandler(config) are plain
(req, res) => Promise<boolean> handlers.
Only what a ramp frontend legitimately needs is forwarded:
| Allowed | Blocked (403) |
|---|---|
GET /ramp/me, /ramp/assets, /ramp/bank-accounts, /ramp/order/:id | Organization management |
POST /ramp/quote, /ramp/order, /ramp/wallet | Partner statements, fees |
POST /ramp/order/:id/cancel, /ramp/order/:id/regenerate_tx | Webhook management |
POST /ramp/order/fiat_received (sandbox + opt-in only) | Everything else |
X-Signature: sha256={hex}: HMAC-SHA256 over the
RFC 8785-canonicalized
JSON body, keyed with the base64 secret returned once by
POST /ramp/webhook. Constant-time comparison; the handler acks 2xx
immediately (Etherfuse retries only 3× with 5s intervals) and dispatches
the event afterwards.verifyMantecaSignature(rawBody, header, secret) for their
shared-secret HMAC (header name confirmed during Manteca onboarding).canonicalize() (RFC 8785 subset) is exported for reuse.
Deliveries can arrive out of order. Key your processing on resource id +
status, and drive logic from the payload's status field — not arrival
order.
Full documentation and demo apps live in the latam-ramp-kit repository. AI tooling (MCP server + agent skill) is available — see @ramp-kit/mcp.
MIT © Armando Cruz
FAQs
Zero-dependency production backend for @ramp-kit/core: server-side API-key proxy with strict endpoint allowlist, plus Etherfuse/Manteca webhook signature verification (HMAC-SHA256, RFC 8785 canonicalization)
The npm package @ramp-kit/server receives a total of 10 weekly downloads. As such, @ramp-kit/server popularity was classified as not popular.
We found that @ramp-kit/server 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.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.

Security News
NIST disclosed an unreleased AI tool called V-etalon and opened a broad inquiry into NVD modernization after years of automation plans produced no public enrichment system.

Security News
In his AI Council 2026 talk, Feross Aboukhadijeh covers recent package compromises, vulnerability discovery, and a more automated security model.