Skip to article
Browse documentation +
BUILD ON IT / ELPIS

Integrate Elpis

Start with verifiable work; connect treasury execution only when the application actually needs to move money.

Choose your integration

You don't need a vault to start verifying work.

Use caseStart here
Evaluate a proposed deliverablePublic playground or POST /api/v1/settle/preview
Store a job and its evidenceJobs API with a scoped read/propose key
Give an agent limited payment authorityTreasury action API and policy rules
Send payment through supported escrowCustomer-controlled signer and contract integration
Record events in your serviceAuthenticated webhooks

Every option shares the same rule: a model can propose, but it cannot replace authorization or independently authenticate a third party.

Credentials and scope

Create a key in Developer workspace. Use read for inspection and propose for creating jobs and permitted proposals. Avoid granting approve to unattended services.

A scoped call
curl -fsS https://elpis.devilabs.dev/api/v1/jobs \
  -H "Authorization: Bearer $ELPIS_API_KEY"
The hosted service uses real organization records. Keys are sensitive; do not put them in client JavaScript, prompts, issue threads or public logs.

Build for all outcomes

An evaluation may return release, refund or hold. Treat hold as pending evidence or authority—not as failure and not as permission to send money. A payment proposal has its own state machine, including blocked and approval-required states.

After a timeout, fetch the persisted state before retrying any write. Supply idempotency keys that represent the precise intended operation and reject changed terms.

Separating settlement and execution

The Jobs API records acceptance decisions. A vault/escrow integration needs its own allowed signer, chain configuration, transaction submission and confirmed receipt. The two do not become one just because the same app calls both.

Read Settlement jobs, Custody and Production status before enabling real-value actions.

SDKs, MCP and webhooks

Elpis exposes REST, Python and TypeScript SDK surfaces, and POST /api/mcp for scoped MCP tools. Subscribe to signed webhooks for state changes, but verify signatures and make downstream processing idempotent.

The exact schemas are in OpenAPI 3.1. For integrations and reference paths, see Integrations, Agents, and Webhooks.