HACKATHON STARTER · STELLAR TESTNET

Empty folder to a verified 402 → payment → 200.

Create a disposable testnet workspace, copy two commands into VS Code, and watch your local consumer call the hosted Express fulfillment API. The contract permits three purchases and rejects the fourth.

Disposable testnet identities · private signers stay in your local project · no wallet connection

GUIDED SETUP

One setup command, one run command, then inspect the evidence.

0
delivered
0
blocked
< 5 min
target
01
Create hosted workspace
Click Start guided setup above
02
Scaffold the project
Open an empty folder in VS Code and paste the setup command
03
Run the consumer
Paste the generated command; private keys remain local
04
Verify contract enforcement
Three deliveries, fourth rejected, explorer hashes recorded
VS Code terminal
blank folder
1 · Scaffold + install
curl -fsSLo reapp-hackathon.zip https://reapp.live/starters/v1/hackathon.zip && unzip -q reapp-hackathon.zip && rm reapp-hackathon.zip && npm ci
2 · Run against your workspace
Create a testnet workspace to generate this command.
$ expected output
· waiting for the local consumer
· settlement pending
· protected response pending
· contract limit check pending

The scaffold contains the actual consumer and fulfillment source. Add .reapp/ to no other workflow: it is already ignored and stores local recovery evidence.

Live session

polling hosted /express

Your local requests will appear here.

Settlement evidence

Stellar testnet

Verified transaction links appear after settlement.

20 self-contained starters

Pick a serious project. Keep the payment boundary.

Each testnet kit includes editable consumer and Express fulfillment source, deterministic fixtures, one focused rejection path, exact package versions, and an offline business-logic check.

20 of 20 startersIntegrity manifest
01

Research Source Scout

Data APIsBeginner
GET only

A research agent buys ranked market, academic, and news sources, then stops when its mandate cannot fund a fourth source.

GET /source/:sourceId
Enforced boundary

The fourth purchase is rejected on-chain because its exact amount exceeds the mandate's remaining authority.

verified-bound-purchasecumulative-budgetrequest-bindingindependent-verificationexplorer-evidence
02

Page Snapshot Meter

Content infrastructureIntermediate
GET only

An agent buys a normalized page snapshot containing metadata, links, word count, and a content hash.

GET /snapshots/:pageId
Enforced boundary

Payment for one page cannot unlock a different page because the proof is bound to the exact requested resource.

verified-bound-purchaserequest-bindingresponse-integrityexplorer-evidence
03

Existing API Tollgate

InfrastructureBeginner
GET only

Demonstrate an allowlisted fixture-gateway pattern for a read-only API boundary.

GET /gateway/:service/:resourceId
Enforced boundary

An upstream route outside the explicit allowlist is rejected before a payment challenge is issued.

merchant-scopeindependent-verificationrequest-bindingexplorer-evidence
04

Paid Tool Gateway

Agent toolingIntermediate
GET only

Publish free schema-described tool discovery while charging for selected tool results through a bounded HTTP integration.

GET /tools/:toolId/results/:fixtureId
Enforced boundary

The offline consumer-policy check rejects a quoted tool price above its declared ceiling before any payment attempt.

price-inspectionverified-bound-purchasefixture-selectionrequest-binding
05

Coding Agent Purchase Hook

Developer toolingIntermediate
GET only

The shared live consumer verifies the fixed price, settles once, retries the paid request once, and verifies the returned patch hash; an offline hook vector rejects a repeated 402 in the settled state.

GET /artifacts/:issueId/patch
Enforced boundary

The offline hook transition rejects a repeated 402 in the settled state instead of initiating another payment.

verified-bound-purchaseprice-inspectiondurable-recoveryexplorer-evidence
06

Discoverable Service Bazaar

DiscoveryAdvanced
GET only

Offline vectors rank bundled service-listing fixtures; the live plan buys the fixed alpha merchant route.

GET /services/:serviceId/results/:fixtureId
Enforced boundary

A wrong-merchant listing is excluded even though its declared price, quality, and latency signals would otherwise rank first.

price-inspectionmerchant-scoperequest-bindingindependent-verification
07

Agent Reputation Snapshot

IdentityAdvanced
GET only

Buy a time-bounded reputation snapshot derived from signed execution events without treating a score as payment authority.

GET /agents/:agentAddress/reputation
Enforced boundary

Events signed by an issuer outside the configured trust set are excluded from the reputation calculation.

merchant-scoperequest-bindingindependent-verificationexplorer-evidence
08

Multi-Agent Workflow Router

OrchestrationAdvanced
GET only

A planner purchases research, verification, and synthesis artifacts as an explicit dependency graph.

GET /workflow/:caseId/:stage
Enforced boundary

A failed verification stage prevents synthesis from running.

verified-bound-purchasedependency-validationsequence-validationexplorer-evidence
09

Verifiable Compute Broker

ComputeIntermediate
GET only

Buy a bounded cryptographic workload and verify the returned digest independently on the consumer side.

GET /compute/sha256-chain/:tier/:seedId
Enforced boundary

The deterministic hash function rejects an iteration count above 512 before hashing begins.

price-inspectionresource-ceilingrequest-bindingindependent-verification
10

Private Test Runner

Developer toolingIntermediate
GET only

A coding agent buys a deterministic hidden-test-result fixture for a known patch identifier.

GET /checks/:patchId/report
Enforced boundary

A patch identifier containing traversal syntax is rejected before fixture lookup.

verified-bound-purchaserequest-bindingreport-integrityexplorer-evidence
11

Build Notary

Software supply chainAdvanced
GET only

Buy a signed fixture statement binding an artifact hash to declared dependency and build-command metadata.

GET /attestations/:artifactSha
Enforced boundary

A statement carrying an artifact hash different from the requested artifact fails local verification.

request-bindingindependent-verificationsignature-verificationexplorer-evidence
12

Model Route Bazaar

AI infrastructureAdvanced
GET only

Offline vectors compare fixture quotes and select the lowest-cost eligible provider; the live plan buys that fixed selected provider result.

GET /providers/:providerId/results/:promptId
Enforced boundary

A provider quote older than the configured freshness window is rejected before provider selection or payment.

price-inspectionmerchant-scopequote-freshnessrequest-binding
13

Rights Receipt

Creative commerceBeginner
GET only

Purchase an exact asset-license version and receive content plus a receipt containing content and terms hashes and the settlement transaction hash.

GET /licenses/:assetId/:licenseVersion
Enforced boundary

Payment for another asset or license version cannot unlock the requested content.

request-bindinglicense-versioningexplorer-evidenceindependent-verification
14

Data Owner Gateway

Data commerceIntermediate
GET only

The live fixture merchant serves one owner-alpha dataset endpoint and receives payment when the agent unlocks that dataset.

GET /datasets/:ownerId/:datasetId
Enforced boundary

A dataset mapped to another owner is rejected by the endpoint's owner mapping before a payment challenge.

merchant-scoperequest-bindingindependent-verificationexplorer-evidence
15

Human Review Outbox

OperationsAdvanced
GET only

An agent buys a signed review decision only after a case reaches a ready state and the mandate remains valid.

GET /reviews/:caseId/decision
Enforced boundary

A distinct short-lived mandate expires before settlement against the ready delayed-case fixture, and the contract rejects payment.

expirydurable-recoveryrequest-bindingindependent-verification
16

Cold-Chain Passport

Supply chainIntermediate
GET only

Buy a shipment passport summarizing custody handoffs, temperature excursions, and sensor continuity.

GET /shipments/:shipmentId/passport
Enforced boundary

A missing sensor interval produces an explicit incomplete passport rather than an unsupported compliance pass.

sensor-continuityrequest-bindingindependent-verificationexplorer-evidence
17

Carbon-Aware Run Window

SustainabilityIntermediate
GET only

Buy the lowest-emission execution window that still meets a workload deadline and capacity requirement.

GET /schedules/:jobId/window
Enforced boundary

A forecast older than the scheduling freshness limit is rejected before a run window is selected.

forecast-freshnesscapacity-validationrequest-bindingindependent-verification
18

Fleet Corridor Authority

OperationsIntermediate
GET only

A fleet agent buys two planned route clearances; then the mandate user revokes authority and the third planned settlement fails closed.

GET /corridors/:routeId/segments/:segmentId
Enforced boundary

After two accepted segments the user revokes authority and the third settlement is rejected by the contract.

revocationsequence-validationrequest-bindingexplorer-evidence
19

Payment Receipt Firewall

SecurityAdvanced
GET only

A reference merchant demonstrates persistent replay admission, exact request binding, and safe recovery after restart.

GET /vault/:resourceId
Enforced boundary

After restart the exact same proof returns the byte-identical stored response without repeating verification or paid fulfillment.

replay-defensedurable-recoveryrequest-bindingindependent-verification
20

Procurement Guard

Small-business automationBeginner
GET only

A purchasing agent evaluates approved vendor quote fixtures offline and buys one explicitly selected allowlisted quote pack.

GET /vendors/:vendorId/quote-packs/:requestId
Enforced boundary

A cheaper vendor outside the configured allowlist remains ineligible and cannot be selected for purchase.

merchant-scopevendor-allowlistquote-freshnessexplorer-evidence
Guided concepts

Understand every enforcement boundary.

Run the happy path first, then change one input at a time and observe where the request fails closed.

const mandate = reapp.createIntentMandate({
  user, agent, merchant, asset,
  maxAmount: "3.00",
  expiry: Math.floor(Date.now() / 1000) + 3600,
});

Reveal the implementation

Selected excerpts from the generated files in your project—no conceptual substitute code.

// src/hosted.mjs
const consumer = createBoundTestnetConsumer({
  mandate: mandateEvidence.mandate,
  agent: actors.agent,
  receiptStore: stores.receiptStore,
});
const url = `${checkedEndpoint}/${resource}`;
const quote = await verifyExactBound402({
  url, merchant: checkedMerchant, amount: "1.00",
});
const delivered = await purchaseVerifiedBoundJson({
  consumer,
  mandate: mandateEvidence.mandate,
  url,
  quote,
  validateDelivery: ({ body, receipt }) =>
    validateHostedDelivery({ body, receipt, resource }),
  commitDelivery: async ({ body, value, receipt }) => {
    const bodyEvidence = createJsonEvidenceEnvelope(
      "hosted-delivery-body", body,
    );
    await stores.resultStore.commitDelivery(runId, {
      type: "delivery_accepted",
      receiptId: receipt.receiptId,
      txHash: receipt.txHash,
      bodySha256: bodyEvidence.sha256,
      evidence: { resource: value.resource, label: value.label },
    });
  },
});
Advanced mode

The guided command runs src/hosted.mjs against this page. Run npm run demo for the complete local consumer-and-fulfillment flow, then edit either side directly.

Open starter source