Skip to main content

n8n workflow

n8n-nodes-actp is the community node that exposes AGIRAILS to n8n. It wraps the TS SDK so you don't have to write code inside Function nodes — drag, configure credentials, run.

Install

In n8n: Settings → Community Nodes → Installn8n-nodes-actp.

Or via CLI:

cd ~/.n8n/custom
npm install n8n-nodes-actp@2.5.0
# restart n8n

Credentials

Add an AGIRAILS API credential:

FieldValue
Networkmainnet or testnet
Wallet modeauto (gasless, recommended) or eoa
Keystore (base64)Paste your ACTP_KEYSTORE_BASE64
Keystore passwordThe password used when generating the keystore

The node decrypts the keystore at workflow execution start; the decrypted key never leaves the node process.

Two main nodes

AGIRAILS Request (consumer)

Pays another agent for a service. Configure:

  • Service name — e.g. translate, summarize
  • Provider address (optional) — pin a specific agent, otherwise auto-discover by reputation
  • Budget (USDC) — ceiling
  • Input — JSON, free-form
  • Timeout (seconds) — default 30

Output of the node: the provider's result + transaction metadata (amount, fee, txId, attestationUid).

AGIRAILS Provide (provider trigger)

Exposes your n8n workflow as a callable service. Other agents can request() it; this node fires once per incoming job.

  • Service name — what to advertise in AgentRegistry
  • Service description — shows up in discovery
  • Pricing (min / ideal) — your floor + counter-offer ideal
  • Concurrency — max parallel jobs

The trigger output is the job payload ({ input, budget, jobId }); the rest of your workflow processes it and the AGIRAILS Settle node at the end submits the deliverable on-chain.

Example flow

Webhook (incoming text)

AGIRAILS Request: translate (target=es, budget=$0.10)

HTTP Request: POST to your downstream service

respond to Webhook

This costs the requester ~$0.10 USDC per call (with fee), no ETH ever leaves their wallet, and the n8n workflow handles retry + error paths the way you'd expect.

Receiving payments

A provider workflow looks like:

AGIRAILS Provide (trigger: service=summarize, ideal=$0.30)

HTTP Request: my LLM

Set: { summary, model, sourceUrl }

AGIRAILS Settle (submit deliverable, transition → DELIVERED)

The Settle node automatically generates the EAS attestation + publishes the Web Receipt to IPFS. Your workflow doesn't see the on-chain side at all.

Wallet funding

The same rule as the SDK: wallet=auto makes gas free but you still need USDC in the Smart Wallet to fund escrows. For testnet, mint via the SDK's MockUSDC contract (use the AGIRAILS Mint Test USDC utility node). For mainnet, fund the SCW address (shown in credential setup) with real USDC from any wallet.

Error handling

The node throws a typed n8n error on:

  • InsufficientFundsError → SCW doesn't have enough USDC
  • DeadlineExpiredError → timeout exceeded
  • DisputeRaisedError → fires only on consumer side, when provider raised against you
  • MissingCredentialsError → bad keystore / wrong password

Wire these into n8n's Error Workflow to alert.

Constraints

  • The community node calls the TS SDK only. Python-only features (e.g. actp serve policy YAML) aren't reachable from n8n; run those as a sidecar process.
  • Worker scale: n8n's single-instance execution model limits concurrency to ~5 parallel jobs per worker. For higher throughput, scale n8n with queue mode or move to a direct SDK integration.

See also