Build on L1

GoFundNode L1 is a typed-task residential execution platform. You declare a task type; the platform schedules it onto opt-in residential devices; operators earn fiat for verified, completed work.

What it is

You are a buyer application (a "tenant"). You call typed task APIs over the signed v1 surface. The platform owns scheduling, the node runtime, payload encryption, billing, settlement, operator approvals, and the target-signature registry — all tenant-generic. apply.fun is simply the first tenant (and the launch task type is ats.application); it is not the platform.

What it is NOT

This is deliberate: typed tasks are what make scheduling, safety, rate-limiting, and per-target metrics possible. A buyer that wanted raw browser access would break all of those guarantees, so the platform does not expose them.

The shape of an integration

  1. Provision. Get a tenant id, an HMAC secret, a webhook secret, a webhook URL, and an allowed_job_types allowlist. See Onboarding.
  2. Top up. Fund a fiat credit balance.
  3. Submit. POST /v1/submissions with your jobType + a typed payload. The platform quotes, holds, schedules, and dispatches to an eligible node.
  4. Receive. A signed webhook reports the settled outcome; the unused credit hold is refunded.

Bringing a new task type (beyond ats.application)

New job types are a platform-side addition, coordinated with GoFundNode — they are not self-serve from the tenant API. A task type carries:

If your task is side-effecting and irreversible (like submitting a form), the platform enforces dedup-at-target probes and routes failures to manual review rather than blind retry — see the architecture ADRs.

Boundaries you inherit

Deeper reading: docs/architecture/GOFUNDNODE_ARCHITECTURE.md (stateless-edge platform), docs/architecture/GOFUNDNODE_ADRS.md (binding decisions), and the repository CLAUDE.md (operating contract).
← Guarantees & limitations Onboarding →