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

n8n-nodes-kora

v2.1.7

Published

Kora deterministic authorization for AI agent spending

Readme

n8n-nodes-kora

Financial authorization gate for AI agent workflows. Drop one node into any n8n workflow — every spend gets an APPROVED or DENIED decision with a cryptographic Ed25519 seal before money moves.

No Kora approval → no payment. By design.


What It Does

Kora sits between your AI agent and any payment. The agent asks "can I spend €50 on AWS?" — Kora checks the mandate (daily limits, monthly limits, vendor allowlist, time windows) and returns a deterministic yes or no. Not probabilistic. Not ML. Pure rule evaluation with cryptographic proof.

Three operations, one node:

| Operation | What happens | |---|---| | Authorize Spend | Agent requests permission → APPROVED with seal, or DENIED with reason + suggestion | | Check Budget | Read-only: how much is left today/this month, percent used | | Health Check | Is Kora reachable? Check before attempting a spend |

Two outputs on Authorize Spend:

  • Output 0 (Approved) → connect your payment node here
  • Output 1 (Denied) → connect your notification/log node here

No separate IF node needed. The Kora node branches for you.

Fail-Closed

If Kora is down (5xx, timeout, unreachable), the workflow stops. The node throws an error. Your payment node never fires.

This is not configurable. No "continue on error" workaround. If you can't verify authorization, you can't spend money.

Install

n8n Community Nodes: Settings → Community Nodes → Install → n8n-nodes-kora

Self-hosted n8n:

cd ~/.n8n
npm install n8n-nodes-kora
# restart n8n

Setup

  1. Go to CredentialsNew CredentialKora API
  2. Enter:
    • Agent Secret Key: kora_agent_sk_... (from Kora admin API)
    • Mandate ID: mandate_abc123def456 (the spending mandate for this agent)
    • API URL: https://api.koraprotocol.com (default)
  3. Add a Kora node to any workflow
  4. Select operation: Authorize Spend / Check Budget / Health Check
  5. Connect Approved output to your payment step, Denied output to your alert step

Example: AI Agent with Spending Controls

[Webhook Trigger] → [Kora: Authorize Spend] → Approved → [Stripe: Create Payment]
                                              → Denied  → [Slack: Notify "Spend denied"]

The agent submits a spend request. Kora checks:

  • Is the amount within the daily limit?
  • Is the vendor on the allowlist?
  • Is the monthly budget exhausted?
  • Is it within the allowed time window?

If everything passes → APPROVED with Ed25519 seal + payment routing. If anything fails → DENIED with machine-readable reason + human-readable suggestion.

What Kora Returns

Approved:

{
  "decision": "APPROVED",
  "seal_signature": "dGVzdF9zaWduYXR1cmU=",
  "seal_algorithm": "Ed25519",
  "payment_iban": "DE89370400440532013000",
  "payment_name": "Amazon Web Services EMEA SARL",
  "daily_remaining_cents": 45000
}

Denied:

{
  "decision": "DENIED",
  "reason_code": "DAILY_LIMIT_EXCEEDED",
  "denial_message": "Transaction would exceed daily limit",
  "denial_hint": "Daily limit is €1,000. Current spend: €960.",
  "denial_available_cents": 4000
}

Zero External Dependencies

This node uses zero production npm dependencies. All cryptographic operations (Ed25519 signing, canonical JSON, nonce generation) use Node.js built-in crypto. HTTP calls use n8n's native this.helpers.httpRequest. This passes n8n's security scanner for Cloud deployment.

Links

License

MIT — see LICENSE