Skip to content
froglet
For developers · Apache-2.0 · Public beta

Implement it.
Run it.
Verify it.

Froglet combines signed service exchange with a runtime for bounded remote computation and an offline verifier. The kernel is frozen and covered by public vectors, so you can build on it or reimplement it.

  • froglet/v1 frozen
  • Rust 1.91
  • Apache-2.0
  • Public beta
Verify a chain nowView the source
Bob and Alice assemble an open service toolkit.
Start with the evidence

Check a signed chain
without installing anything.

The panel runs froglet-verify, compiled to WebAssembly, in this tab. Nothing is uploaded. It checks every signature, every hash, and the links between artifacts. It cannot tell you the work was right.

froglet-verify · WebAssemblyidle

Verifies the five-record free-deal chain from the frozen conformance vectors. The second button changes one field in the receipt first, so you can watch it fail.

Nothing verified yet.

The same check on the command line

bash
cargo run -p froglet-verify -- conformance/kernel_v1.json
output
[ok ] descriptor     dbc62553ea46  envelope + semantics verified
[ok ] offer          8c505f064878  envelope + semantics verified
[ok ] quote          6b2b874382db  envelope + semantics verified
[ok ] deal           d96f9e9b5fc0  envelope + semantics verified
[ok ] invoice_bundle fa8bec3305c2  envelope + semantics verified
[ok ] receipt        e4e242f9b194  envelope + semantics verified
chain descriptor_offer: ok
chain offer_quote: ok
chain quote_invoice_bundle_deal: ok
chain quote_deal_receipt: ok
result: VALID

Exit code 0 is valid, 1 invalid, 2 a usage error. The other options, formats and runners are in the conformance guide, and the full browser verifier takes your own records.

Play both sides

Write a function.
Publish it. Call it. In this tab.

Bob publishes a function and Alice calls it. Write Bob’s function in the editor and this page compiles it to a real WebAssembly module, then runs that module. Both sides run in your browser, on the Rust kernel a node uses, so the keys, signatures, and receipts are real. The two sides talk to each other inside this page, and what you write and what they sign never leaves your tab.

The idea

A small kernel.
Everything else can change.

Froglet fixes only what has to be irreversible: the signed records two parties leave behind. Transports, storage, execution, and payment sit around that kernel as adapters, and services are built on top. The kernel does not hardwire a marketplace, a transport, a storage engine, or an execution runtime.

  1. Servicesbuilt on the protocol

    Marketplace, brokers, curated lists. A service is a Froglet provider that is discovered, quoted, and settled through the same deal flow as any other.

    • marketplace
    • brokers
    • curated lists
  2. Node runtimefroglet · src/

    The HTTP server, deal tracking, jobs, SQLite storage, auth, and configuration. One binary, froglet-node, runs as a provider, a runtime, or both.

    • provider API :8080
    • runtime API :8081
    • SQLite
  3. Adaptersexecution and transport

    What makes the kernel usable somewhere specific. Each one can change without changing how hashes, signatures, deals, or receipts work.

    • MCP
    • A2A (optional)
    • Wasm
    • Python
    • OCI
    • Lightning
    • Tor
    • TLS
    • relay
    • Nostr
    • TEE (spec)
  4. Economic kernelfroglet-protocol

    The smallest irreversible surface: the signed envelope, canonical JSON, hashing, signatures, and six artifact types. It knows nothing about HTTP, databases, or sandboxes.

    • RFC 8785 JCS
    • SHA-256
    • BIP-340
    • six artifacts

A free exchange leaves five signed records

  1. descriptorsigned by provider

    Who the provider is, what it can do, and where to reach it.

  2. offersigned by provider

    One service, with its price and execution profile.

  3. quotesigned by provider

    A price and limits for one specific workload and requester.

  4. dealsigned by requester

    The requester commits to the quote.

  5. receiptsigned by provider

    The outcome, the result hash, the limits applied, and the settlement state.

The records bind identities, terms, workload and reported outcome through hashes. Anyone holding them can check those relationships. Lightning escrow adds an InvoiceBundle after the Deal; free and prepaid exchanges use five records. Step through it in the protocol walkthrough, or read how one artifact is signed.

Signed froglet/v1 artifacts verify forever. The stability policy forbids any change that alters the verification outcome of an existing one.

A signed result can still be wrong. Froglet makes commitments and result hashes attributable to signing keys. Correctness and usefulness still need evaluation. Payment settlement depends on the configured payment system. Staked identity is designed, not deployed. It is not a live guarantee against misconduct. See trust and incentives and payment setup and limits.

Agent interfaces. A bounded executor.

Your program.
Someone else’s machine.

Alice supplies a compatible Wasm program and input. Bob offers computation with explicit limits. MCP connects Alice’s assistant; optional A2A carries the task between Nodes. Froglet’s runtime admits the work, executes it and returns signed evidence.

  • Alice’s assistant

    Calls run_compute with the program, input, price cap and a retry key.

    MCP is the tool interface.

  • Alice and Bob’s Nodes

    Bind the request to exact terms. The optional A2A adapter carries scoped, identity-bound tasks.

    A2A is the task interface.

  • Bob’s executor

    Runs the program with memory, fuel, time and output limits. Alice verifies the returned records.

    Froglet supplies the execution boundary.

A working local research example. Bob publishes a selected illustrative terminology table. Alice retrieves it, then runs a disposable mapping check on Bob’s executor: two observed terms have one target, one has multiple targets, and one is unmapped. The check follows Alice’s exact-string, one-target rule; it does not decide scientific meaning.

Observable execution boundaries. The runner checks exact retry and changed-input refusal, stops an infinite loop at an execution limit, and recovers the same result after Bob restarts. An actual Codex session has also retrieved the rows, run a local compiled Wasm file remotely and recovered its verified result on one Mac. The native workflow also passed in an isolated Linux arm64 development environment; fresh-machine and Linux agent-host qualification remain open.

Explicit research assumptions. An optional native research profile declares fields, namespaces, versions, units and provenance. Alice can detect differences before analysis. Matching declarations still need scientific evaluation.

A specific scope. Free jobs, configured counterparties, direct ingress and polling. The released Mac node also passed a separate native-MCP-to-Fly proof: six synthetic free cases, provider restart persistence and offline task recovery. That isolated test host was removed. Available hosted compute, production/load, clean OS installation, fresh agent hosts, independent user trials and real-money settlement need separate qualification. A2A requires Froglet’s extension; an arbitrary A2A client is not automatically compatible.

Run the terminology demo · Read what works today

Tools

What you can run
and build on today.

You need Rust 1.91 to build from source. Each tool carries a maturity label, and Status lists them all with their evidence. The public beta runs supplied Wasm programs and a synthetic catalog without installation or an invitation; the browser verifier can inspect the returned signed exchange.

Run and verify

  • Reference node

    froglet-node · src/

    One binary that runs as a provider, a runtime, or both. The role defaults to provider, and dual also serves the runtime API that agents use. The first start creates an identity and a ./data directory.

    bash
    FROGLET_NODE_ROLE=dual cargo run -p froglet --bin froglet-node
  • Offline verifier

    froglet-verify/

    A library and a command line. They check every signature, hash, semantic rule, and chain link, with no node, network, or clock.

    Offline verifier · Beta

    The command line does the same check as the panel above.

  • Browser verifier

    froglet-verify · WebAssembly

    The same code compiled to WebAssembly. It runs the panel above and the receipt page, entirely in your tab.

    Browser verifier (WebAssembly) · Beta

    Nothing is uploaded. Paste your own signed records on the receipt page.

  • Python verifier

    python/froglet-verify/

    An independent implementation with no dependencies. It verifies and does not sign.

    bash
    PYTHONPATH=python/froglet-verify python3 -m froglet_verify.conformance conformance/kernel_v1.json
  • Conformance vectors

    conformance/

    The frozen vectors that define froglet/v1, with their seeds, and the rules a conforming runner must assert.

    Conformance vectors · Beta

    bash
    cargo test -p froglet --test kernel_conformance_vectors
The author CLI
froglet-node author commands
CommandWhat it does
froglet-node init <name>Scaffold a service project.
froglet-node buildValidate manifests and build the artifact, without publishing.
froglet-node publish [--host local|relay|tor|self]Publish through the local daemon. Two calls: a plan, then the exact approval.
froglet-node prepare-service --request FILEPrepare a selected catalog or a Wasm service and run its example.
froglet-node invoke <id|share-url> [input]Call a service. Share URLs require verified free terms.
froglet-node doctor --jsonDiagnose the installation, runtime, relay, and agent.
froglet-node identity <command>Generate, back up, restore, rotate, or verify identity custody.
froglet-node mcpRun the native MCP bridge for an agent host.

Connect and build

  • MCP

    froglet-node mcp · integrations/mcp/froglet

    One tool named froglet for compatible agent hosts. The native bridge needs no Node.js. It supports supplied Wasm jobs with run_compute and read-only recovery with get_task, as well as two-call publishing. Use a source build or release containing these actions.

    MCP · BetaClaude Code · Beta

  • A2A

    A2A 1.0 HTTP+JSON · optional adapter

    Task communication between configured Nodes. Disabled by default; requires scoped credentials and the Froglet extension. Uses direct ingress and polling. The Froglet Node still executes the program and enforces its limits.

    A2A adapter · Beta

  • OpenClaw and NemoClaw

    integrations/openclaw/froglet

    The same froglet tool as a plugin. It needs Node.js 22.14 or newer.

    OpenClaw · Beta

  • HTTP API

    docs/openapi.yaml

    OpenAPI 3.1. The provider API on port 8080 serves the public requester routes and Bearer-authenticated control routes. The runtime API on port 8081 is for the local operator.

  • Wasm services

    froglet.wasm.run_json.v1

    Write a service in any language that compiles to WebAssembly. Export memory, alloc, and run; import nothing. The node adds fuel, memory, output, and wall-clock limits.

    WASM · Beta

Examples

Real artifacts.
Real output.

The signed records here come from the frozen vectors and from a page a real node served. The code runs as written.

A signed offer

free_offer · conformance/kernel_v1.json
{
  "artifact_type": "offer",
  "created_at": 1700001001,
  "hash": "60ffddf33a160f435d92fbd7b5bdbe66dca502c39b3662668677916b491bb001",
  "payload": {
    "descriptor_hash": "dbc62553ea46192d7ff2eeb26b9aa14344ce1866f9b8c915e26a1c77dc5f23cd",
    "execution_profile": {
      "abi_version": "froglet.wasm.run_json.v1",
      "fuel_limit": 50000000,
      "max_input_bytes": 131072,
      "max_memory_bytes": 8388608,
      "max_output_bytes": 131072,
      "max_runtime_ms": 30000,
      "runtime": "wasm"
    },
    "offer_id": "execute.wasm.free",
    "offer_kind": "compute.wasm.v1",
    "price_schedule": {
      "base_fee_msat": 0,
      "success_fee_msat": 0
    },
    "provider_id": "4f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa",
    "quote_ttl_secs": 300,
    "settlement_method": "none"
  },
  "payload_hash": "6b1eeceb05bf702bbb26dc5b857010db419ace4d682975cd81517683c7c46be5",
  "schema_version": "froglet/v1",
  "signature": "bd1bd9b71a375af3de3b886d4bac12f70d02f5f4d94ddf6cf6aa5404d3214fca03951c860e43f89142c3ca435ff9cf66183e18b72e0d97d20b99fde370b7075b",
  "signer": "4f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa"
}

One service, with its price and execution profile, signed by the provider.

A node’s own feed, verified offline

bash
curl -s 'localhost:8080/v1/feed?limit=50' | cargo run -q -p froglet-verify -- -
output
[ok ] descriptor     a66dcbdd8dc5  envelope + semantics verified
[ok ] offer          66c9da40e683  envelope + semantics verified
[ok ] offer          bdf896bfc598  envelope + semantics verified
[ok ] offer          fdea8f08a87c  envelope + semantics verified
result: VALID

The output is from a page a real node served, kept as a test fixture, so your hashes will differ. The feed is paged, so the verdict covers the page you fetched.

A whole Wasm host

javascript
// moduleBytes: a .wasm that exports memory, alloc and run, and imports nothing
const { instance } = await WebAssembly.instantiate(moduleBytes, {});
const input = new TextEncoder().encode(JSON.stringify(request));
const ptr = instance.exports.alloc(input.length);
new Uint8Array(instance.exports.memory.buffer, ptr, input.length).set(input);
const packed = instance.exports.run(ptr, input.length);   // i64: result pointer in the high 32 bits, length in the low 32
const at = Number(packed >> 32n), length = Number(packed & 0xffffffffn);
const result = JSON.parse(new TextDecoder().decode(new Uint8Array(instance.exports.memory.buffer, at, length)));

What it shows

This runs in a browser as it stands. A real host also canonicalizes the request and enforces limits on fuel, memory, output size, and time; the node does, and browsers do not meter fuel.

The contract is froglet.wasm.run_json.v1. The service binding page describes how it fits the deal flow.

Implementation status

Different pieces.
Different levels of maturity.

These are source maturity labels, backed by repository evidence. They do not certify a deployment, live-money payments, or uptime.

  • SpecDocumented and specified. No implementation to run yet.
  • PrototypeRuns locally. Incomplete error handling; not exercised against live endpoints.
  • BetaWorks against live or hermetic endpoints. Known edge cases remain.
  • ProductionError handling, idempotency, and observability in place, with a public transcript.
Payment integration maturity
Payment integrationStatusCurrent boundary
LightningBetaProven end-to-end on regtest with real LND. No mainnet payment has been made.
x402PrototypeKernel semantics, conformance vectors and a separate HTTP payment endpoint exist. Priced signed Quote/Deal admission rejects this rail; no live transcript on any network.
StripePrototypeTest-mode Shared Payment Token flow against a mock and the Stripe sandbox. No live-money transcript.

Implementations of froglet/v1

Implementations of the froglet/v1 kernel and verifier
ImplementationIndependent of the Rust code?Scope
froglet-protocol and froglet-verify (Rust)The referenceKernel, verifier, and CLI.
Browser build of the signing kernel, froglet-wasm (WebAssembly)No, the same codeSigns and hashes for the playground. Prototype
Browser build of froglet-verify (WebAssembly)No, the same codeRuns the panel above and the receipt page. Beta
python/froglet-verify (Python 3.10+)YesVerify only, no dependencies. Marked alpha in its package metadata.
Yours, in any languageYesReproduce the vectors.

Several Rust runners exercise different distribution paths, but they share one implementation and do not add diversity. The Python verifier is the only independent implementation so far, and it is verify-only.

All runtimes, integrations, and evidence
IntegrationStatusEvidence and limits
Offline verifierBetaVerifies a full chain offline with no node and no network; reproduces the frozen conformance vectors. Source evidence
Browser verifier (WebAssembly)BetaThe same froglet-verify code compiled to WebAssembly; the site tests it on the sample chain and a tampered copy. It shares the Rust implementation, so it is a distribution path, not a second implementation. Source evidence
Browser playgroundPrototypeA provider and a consumer for free deals in one tab, signing with the Rust kernel compiled to WebAssembly, with an editor that compiles the provider’s function in the tab. Tested against the conformance vectors and a real node’s captured responses, and by two opt-in tests on one machine: a real node’s requester calls its provider, and a real node runs the modules its editor compiles. Its two sides talk in the page, not over a network. Source evidence
Conformance vectorsBetaFrozen byte-for-byte and re-verified by Rust runners sharing the protocol implementation and an independently implemented Python verifier. Source evidence
Claude CodeBetaThe single froglet tool and host configuration are covered by protocol tests. This is not qualification of a particular installed Claude Code session. Source evidence
MCPBetaNative stdio bridge supports bounded run_compute and read-only get_task. Real local requester/provider tests cover successful execution, retry identity, refusal of changed input and recovery. Use a source build or release containing these actions. Release scope and qualification
A2A adapterBetaOptional, disabled by default. Configured counterparties use direct ingress, polling and a required Froglet extension. Free local jobs and restart recovery were exercised with the official SDK; full TCK and real-money deployment remain unqualified. Release scope and qualification
OpenClawBetaShares the single-tool dispatch library with the MCP surface. Source evidence
WASMBetaFuel-metered execution with declared limits; the most exercised runtime in the test suite. Source evidence
DockerBetaDigest-pinned OCI profiles and CI image smoke tests exist. General bounded CPU jobs remain incomplete; the isolated worker’s GPU path is disabled. Source evidence
TorPrototypeSelf-hosted onion registration path; exercised only behind an opt-in environment flag. Source evidence
DNS attestationPrototypeSubject-side signing and record formatting ship in the CLI; the issuing service is specified but not built. Source evidence
TEESpecSpecified as an additive extension. No implementation. Source evidence
Selective disclosureSpecDeferred to a future minor version; v1 payload hashing commits to the whole payload. Source evidence
Supported, experimental, disabled and planned functionality

Release availability, source support and deployment evidence are separate. The immutable v0.4.7-beta.1 prerelease is published. Its downloaded Mac binary passed a localhost replay and a separate native-MCP-to-Fly proof: six bounded free cases, restart persistence and offline recovery on one isolated host, now removed. Available hosted compute, production/load, fresh agent hosts, clean OS setup and payments remain unqualified. Remote A2A evidence remains separate and local. Individual experiments, disabled paths and plans remain labeled separately.

Current functionality, practical Alice/Bob scenarios and limits
FunctionalityStatusWhat Alice and Bob can doCurrent limit
SharingSelected JSON, typed CSV and SQLite tablesImplementedBob shares only the columns Alice needs, as a separate snapshot.Mixed JSON needs normalization; original data is preserved. No arbitrary SQL or joins.Source reference: src/cli/prepare.rs
SharingDescribe, select, filter and page selected rowsImplementedAlice retrieves matching rows, chosen columns and the next page.Scalar equality only. Complex comparisons run in Alice’s analysis.Source reference: docs/SERVICE_BINDING.md
SharingPrepare, verify and approve publicationImplementedBob inspects an example and approves the exact public package.Public hosting requires exact consent. A listing does not prove Alice has used it.Source reference: src/cli/mcp.rs
SharingService links, manifests and QR codesImplementedBob sends a link; Alice can inspect the signed description before calling.A link grants no credentials. Offline descriptions can be stale.Source reference: docs/SHAREABLE_SERVICE_LINK.md
SharingMarketplace search and discoveryImplementedAlice browses named services and prices through the website or JavaScript tools.Discovery depends on the registry. Native MCP inspects links; it has no search action.Source reference: integrations/shared/froglet-lib/tool-dispatch.js
SharingSource changes and publication lifecycleImplementedBob detects an update, prepares a new version, or pauses, rolls back or withdraws it.No automatic republishing. Already delivered results cannot be recalled.Source reference: src/cli/prepare.rs
SharingOne bounded existing HTTPS JSON operationImplementedBob exposes one fixed lookup, classifier or inference call with private credentials.Fixed GET or POST, schemas, byte limits and deadline. No arbitrary proxy, uploads or streaming.Source reference: docs/HTTP_SERVICES.md
SharingFile download sharingExperimentalBob shares a fixed file snapshot; Alice downloads it through the candidate file flow.Local F1 implementation, capped at 8 MiB; Node, share UI and relay release qualification remains open.Source reference: docs/FILE_AND_COMPUTE_SCOPE.md
ComputationRequester-supplied bounded WasmVerified locallyAlice sends a compatible compiled program and input for Bob to execute.Native action accepts at most 256 KiB of Wasm. It does not compile source or expose Bob’s files.Source reference: tests/cli_mcp_compute.rs
ComputationMemory, fuel and execution deadlinesVerified locallyAlice’s nonterminating program stops at Bob’s execution limit.Limits bound execution; they do not establish that the answer is correct.Source reference: examples/a2a_compute_demo.py
ComputationExact retries and result recoveryVerified locallyAlice reads a saved completed call with get_task or its exact retry key, even after Bob stops and Alice restarts.get_task revalidates saved terminal receipts offline. Unsigned or unresolved tasks still need Bob for refresh. Unknown admission can remain unresolved; no universal exactly-once promise.Source reference: tests/cli_mcp_compute.rs
ComputationReleased native MCP across two hostsQualified narrowlyAlice’s released Mac node called Bob’s released provider on one isolated Fly machine with a finite free invitation.Six synthetic cases: five successes and an expected fuel failure; restart persistence and six offline saved-task reads. Test host removed. No remote A2A, production/load, fresh agent-host, clean-OS or paid qualification.Source reference: docs/RELEASE.md
ComputationExplicit research declarationsVerified locallyAlice checks Bob’s declared fields, namespaces, versions and units before analysis.Declaration checks and illustrative mapping audits do not solve ontology alignment or scientific truth.Source reference: docs/RESEARCH_PROFILE.md
ComputationAdvanced Python and OCI execution profilesExperimentalAn operator configures a specific supported execution environment.Outside native run_compute. Linux isolation and general CPU jobs have separate gates.Source reference: docs/FILE_AND_COMPUTE_SCOPE.md
ComputationGPU execution and rentalDisabledAlice cannot currently rent Bob’s GPU through the isolated worker.Historical T4 smoke evidence does not qualify the current disabled worker path.Source reference: docs/FILE_AND_COMPUTE_SCOPE.md
AgentsNative MCP toolVerified locallyAlice’s agent uses one local tool for invocation, computation and recovery.Actual Codex exercised on one Mac. Exact binary support, host attachment and fresh OS testing are separate.Source reference: docs/RELEASE.md
AgentsJavaScript MCP and OpenClaw adaptersImplementedAlice uses the broader discovery, task and payment-inspection tools.Adapter tests do not qualify every host. Claude’s actual signed-in session remains unrun.Source reference: integrations/shared/froglet-lib/tool-dispatch.js
AgentsOptional A2A 1.0 configured-counterparty flowVerified locallyAuthorized Alice obtains a Quote, submits a signed Deal and polls Bob’s Task.Required Froglet extension, exact requester and Offer scope, direct ingress; disabled by default.Source reference: src/api/a2a.rs
AgentsReviewed A2A counterparty setupImplementedBob and Alice prepare private settings from a reviewed plan instead of editing credentials manually.Source helper requires Python and POSIX permissions; restart activates the new settings.Source reference: docs/A2A_COUNTERPARTY_SETUP.md
AgentsA2A streaming, push and provider cancellationUnsupportedAlice uses polling; she cannot cancel an admitted Deal through A2A.No conversational continuation, relay A2A ingress or full TCK certification.Source reference: docs/AGENT_INTEROPERABILITY_PLAN.md
AgentsAny stranger buys immediately from an A2A linkUnsupportedFinding Bob’s Agent Card gives Alice information, not execution authority.Operator configuration is required. No anonymous federation or general organization-wide delegation.Source reference: docs/AGENT_INTEROPERABILITY_PLAN.md
Evidence and controlsSigned terms, workload, result commitments and receiptsImplementedAlice can inspect what was agreed and match the received result to its commitment.Signatures do not prove truthful execution, scientific correctness or usefulness.Source reference: docs/KERNEL.md
Evidence and controlsOffline Rust, browser and independent Python verificationImplementedAlice checks supplied records without trusting a marketplace or calling Bob.Browser uses the Rust implementation. Independent Python verifies but does not sign.Source reference: conformance/README.md
Evidence and controlsPrivate, invite and bounded-trial admissionImplementedBob issues an expiring invitation or pauses new work and caps cumulative use.Ordinary invitations cover the provider’s services. Counters do not cap hosting or already-started upstream charges.Source reference: docs/HTTP_SERVICES.md
Evidence and controlsDiagnosis, status, identity backup and lifecycle recoveryImplementedBob inspects failures, preserves his identity and reconciles publication changes.A sleeping or stopped host is unavailable. Managed always-on hosting is not provided.Source reference: docs/RELEASE.md
Evidence and controlsSelf-hosted Tor transportExperimentalBob explicitly operates an onion endpoint instead of direct clearnet ingress.Advanced self-hosted path; no managed Tor hosting or A2A relay claim.Source reference: python/tests/test_tor_integration.py
PaymentsFree exchangesVerified locallyAlice runs a job with a zero-price ceiling and no payment.Published-Mac localhost execution is verified; the separately scoped six-case cross-host proof does not qualify an available hosted compute service or paid operation.Source reference: docs/RELEASE.md
PaymentsLightning escrow and prepaid driversExperimentalConfigured Alice authorizes a paid call under explicit price and wallet limits.LND regtest evidence exists; mock mode is test-only. No mainnet transcript or qualified paid MCP/A2A deployment.Source reference: docs/PAYMENT_MATRIX.md
PaymentsStripe Shared Payment Token driverExperimentalA compatible requester supplies a token from an authorized platform.Mock/sandbox evidence, no live-money transcript. Native compute does not accept a Stripe token argument.Source reference: docs/PAYMENT_MATRIX.md
PaymentsSeparate x402 HTTP payment endpointExperimentalA configured client uses the distinct HTTP 402 challenge flow.Kernel/vectors and driver exist, but priced Quote/Deal admission rejects this rail. No live-network transcript.Source reference: src/api/mod.rs
PaymentsPrice ceilings, spend policy and payment-state inspectionImplementedAlice limits an authorized call and inspects payment intent, invoices and usage.Free-only defaults. A ceiling alone grants no authority; automatic refill, stake and marketplace top-up are unavailable.Source reference: integrations/shared/froglet-lib/tool-dispatch.js
Future scopePublic HTTPS operation of the new compute profileNot yet qualifiedAlice and Bob operate the current profile across independent machines.The finite six-case Mac-to-Fly proof passed and its test host was removed. An available service still needs deployment, admission, production/load and operator qualification.Source reference: docs/RELEASE.md
Future scopeGeneral bounded CPU container jobsPlannedAlice submits a general container job with status, cancel and result handling.C1 foundations exist; controlled pulls, hard disk bounds and isolation qualification remain incomplete.Source reference: docs/FILE_AND_COMPUTE_SCOPE.md
Future scopeAutomatic multi-provider batch schedulingPlannedAlice asks many providers to divide one large job automatically.Individual tasks work today; no fan-out scheduler, distributed training or batch retry workflow.Source reference: TODO.md
Future scopeDNS/OIDC identity-attestation issuerPlannedA service verifies Bob’s external identity and issues a renewable attestation.Payload/validator exist. Issuance and re-verification service remains to be built.Source reference: TODO.md
Future scopeManaged always-on hostingPlannedBob would like a managed service to keep his provider running.Future work; no managed product or uptime SLA exists today.Source reference: docs-site/src/pages/managed.astro
Future scopeArbitrary contracts and general organizational delegationUnsupportedBob cannot delegate every legal term or organization-wide permission to Froglet.Selected scope, admission and resource limits are technical controls, not automatic legal enforcement.Source reference: docs/RELEASE.md
Future scopeConfidential execution and selective disclosurePlannedAlice wants computation whose input Bob cannot see, or selectively disclosed evidence.Specification scope only. The current compute flow sends Bob the program and input.Source reference: docs/CONFIDENTIAL.md
Future scopeStake slashing and economic adjudicationPlannedA dispute automatically changes deposits or reputation.Complaint wrappers are distinct from an implemented economic mechanism; design parameters remain open.Source reference: docs/ARBITER.md

In a browser, you can verify signed records and run the playground above: a provider and a consumer for free deals that live in your tab. The node, the CLI, and the agent integrations run on a machine you control. For current batch and GPU constraints, see the advanced workflow boundaries. Tor is an advanced self-hosted path. Confidential execution and selective disclosure remain specifications. The newly generated program attempt has independently correct outputs, but incomplete fresh-session qualification.

Build with it

Reimplement it.
Connect it.
Contribute to it.

The step-by-step guides are in the docs. These are the places to start.

  • Implement froglet/v1

    The conformance vectors define it and include their seeds, so you can re-derive every signature. There is no certification beyond reproducing them.

  • Connect an agent

    Attach the MCP server to Claude Code, Codex, or another agent host, or use the OpenClaw plugin.

  • Publish a service

    Prepare a service, review an example, and approve it before anything is published from a node you run.

  • Contribute

    Sign off every commit with git commit -s. There is a Developer Certificate of Origin, and no CLA. A change to signing, hashing, or artifact structure must update conformance/kernel_v1.json and say why. Only the latest release receives fixes.

Read the specification

  • KERNEL.md — Normative kernel specification: artifacts, hashing, signing, state machines.
  • SPEC.md — Verification algorithm, chain validation and issue codes, settlement-method registry.
  • VERSIONING.md — What is frozen, what may be added, and how a v2 would happen.
  • THREAT_MODEL.md — Assets, trust boundaries, key-compromise runbook, accepted risks.

Make one useful thing work.

Prepare a serviceJoin the discussion