Becoming a Provider in 5 minutes
Wrap your existing service as a JECP capability and start receiving 85% revenue per agent call.
What you'll need
- A domain you own (for DNS verification)
- A Stripe account in one of the 47 supported countries
- An HTTP endpoint that accepts POST + verifies HMAC (the SDK provides a helper)
- 5 minutes
1Register the Provider
POST https://jecp.dev/v1/providers/register
{
"namespace": "yourco",
"display_name": "Your Co",
"country": "US",
"owner_email": "founder@yourco.com",
"endpoint_url": "https://yourco.com/jecp"
}
← {
"provider_id": "uuid",
"provider_api_key": "jdb_pk_...", // shown ONCE
"hmac_secret": "...", // shown ONCE
"dns_token": "..."
}
Save
provider_api_key and hmac_secret immediately — they cannot be recovered.2Verify domain ownership via DNS
# Add this TXT record at your DNS provider:
TXT _jecp.yourco.com "jecp-verify=<dns_token>"
# Then call:
POST https://jecp.dev/v1/providers/verify-dns
Authorization: Bearer jdb_pk_...
{ "domain": "yourco.com" }
← { "verified": true }
3Connect Stripe Express
POST https://jecp.dev/v1/providers/connect-stripe
Authorization: Bearer jdb_pk_...
← { "onboarding_url": "https://connect.stripe.com/setup/..." }
Open the onboarding_url in a browser. Stripe walks you through KYC + bank account setup. 5-min for most legal entities.
4Publish your manifest
POST https://jecp.dev/v1/manifests
Authorization: Bearer jdb_pk_...
Content-Type: application/x-yaml
namespace: yourco
capability: translate
version: 1.0.0
endpoint: https://yourco.com/jecp
description: Translate text between any two languages
actions:
- id: translate
description: Translate input.text to input.target_lang
pricing: { base: 0.005, currency: usdc }
rate_limit_rpm: 60
input_schema:
type: object
required: [text, target_lang]
properties:
text: { type: string, maxLength: 5000 }
target_lang: { type: string, enum: [JA, EN, FR, DE, ES] }
examples:
- { input: { text: "Hello", target_lang: "JA" }, output: { translated: "こんにちは" } }
5Implement the endpoint
// Using @jecpdev/sdk's JecpProvider helper (TypeScript)
import { JecpProvider } from '@jecpdev/sdk';
const provider = new JecpProvider({
hmacSecret: process.env.JECP_HMAC_SECRET!,
});
// Works on Bun, Cloudflare Workers, Next.js Route Handlers
export const POST = provider.createHandler(async (req) => {
if (req.action === 'translate') {
const { text, target_lang } = req.input as { text: string; target_lang: string };
return { translated: await myTranslate(text, target_lang) };
}
throw new Error(`unknown action: ${req.action}`);
});
HMAC verification + ±5 min replay window are handled inside createHandler. Your business logic only runs after the signature is verified.
Revenue split
- 85% to you (Provider) — atomically allocated per successful call
- 10% Hub fee (Tufe Company)
- 5% payment processing (Stripe + reserve)
Failed invocations are not charged. Stripe Transfer payouts to your account are scheduled monthly (automated payouts ship Q3 2026).
Browser/edge runtime
If your endpoint runs on Cloudflare Workers, Deno, or any environment without node:crypto:
import { JecpProvider } from '@jecpdev/sdk/browser';
// ...same API, uses Web Crypto API under the hood