Catalog npm
Back to packageRELEASE DETAILS

0.1.1

npm

@0xhoneyjar/quests-protocol

Sealed wire-format schemas for quest engagement — substrate-graded step submission + verdict (instance-1 · cycle 2026-05-03). Future shapes: quest defs, completion criteria, badges, raffles, completion events.

effectfreesideprotocolquestsschema
Published4 May 2026
Direct dependencies2
Transitive dependenciesNot calculated

README

Current package documentation

packages/protocol — sealed quest schemas

Wire-format contracts for quest engagement. Bridges every freeside-quests consumer (worlds, ruggy, dashboards, future MCP wrappers) to a single coherent vocabulary.

Contract version: 1.0.0 · authority: Effect Schema · sealed.

Current contents

Cycle 2026-05-03 substrate-integration (instance-1) lands the substrate-step submission/verdict pair — the over-the-wire envelope for substrate-graded activity steps in cubquests-interface.

exportpurpose
SubstrateStepSubmissionGateway → Kafka → construct. Discriminated payload (essay/url/structured), trace correlation, lowercased EVM wallet, contract-version stamping.
SubstrateStepVerdictConstruct → Kafka → resolution listener. Status (APPROVED / REJECTED / NEEDS_HUMAN), confidence on [0,1], human-readable reasoning, optional per-construct dimensions.
SubstrateStepPayloadDiscriminated union of supported submission shapes. Additive minor bumps.
VerdictStatusLiteral union — terminal states + human-routing.
SUBSTRATE_STEP_CONTRACT_VERSION"1.0.0" — semver string for wire-format compatibility checks.

Three boundaries validate against these schemas:

  1. freeside-quests/apps/api gateway — validates inbound submission, wraps in Hounfour CompletionRequest, publishes to Kafka.
  2. Substrate construct (e.g. 0xHoneyJar/construct-lore-essay-grader) — validates narrower per-construct input; emits verdict back into the result topic.
  3. freeside-quests/apps/worker resolution listener — validates inbound verdict before any DB update, badge issuance, or Discord ping.

Doctrine

Substrate-graded steps are a primitive of the substrate-construct convention. See ~/vault/wiki/concepts/substrate-mental-model-for-product-builders.md — the operator authors lore + grading instructions; the construct enforces them. The protocol package owns the seam.

Future shapes

Source: world-sprawl/cubquests/ + world-sprawl/cubquests-dashboard/. Per ../../docs/EXTRACTION-MAP.md. Not yet shipped:

filepurpose
quest.schema.tsQuest definition — title, description, completion criteria, rewards, partner attribution, dates
completion-criteria.schema.tsTyped completion criteria (held NFT count, trait match, social action, onchain action, partner-specific)
badge.schema.tsBadge definition + issuance criteria + visual asset references
raffle.schema.tsRaffle entry + draw + winner schemas
event.schema.tsQuest-completion NATS event shape (quests.completion.{world}.{quest_id}). NEW.
webhook-payload.schema.tsHMAC-signed webhook payload format. NEW.
types.tsBranded TS types — QuestId, BadgeId, CompletionEventId, PartnerSlug

Governance

Same as freeside-worlds/packages/protocol/VERSIONING.md — imported verbatim from loa-constructs/.claude/schemas/VERSIONING.md. Enum-locked, additive-only minors. Major bumps require new file + migration plan + stable $id.

Consumers

  • freeside-quests/packages/engine — substrate-step dispatch validates against these schemas
  • freeside-quests/packages/ports/ — type ports off these schemas (post-extraction)
  • freeside-quests/packages/adapters/quest-engine-client.ts — validates over wire (post-extraction)
  • freeside-quests/packages/mcp-tools/ — agent-callable surface (post-extraction)
  • world-sprawl/cubquests-dashboard/ — impl validates inputs/outputs against these (post-extraction)
  • 0xHoneyJar/freeside-ruggy — consumes event schemas + completion fan-out (post-extraction)
  • freeside-worlds — world manifests reference compose_with: freeside-quests
  • (future worlds) Purupuru Year 2, Honey Port, Mibera — typed access via ports

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 3

Native requirements
2 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
effect
Environment
{
  "local_name": "effect",
  "alias": false,
  "peer_metadata": null
}
^3.10.0development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.7.0development
effect
Environment
{
  "local_name": "effect",
  "alias": false,
  "peer_metadata": null
}
^3.10.0peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "7ae0133779288cdbea467c64d6e1036fc585034a",
  "tarball": "https://registry.npmjs.org/@0xhoneyjar/quests-protocol/-/quests-protocol-0.1.1.tgz",
  "fileCount": 10,
  "integrity": "sha512-5CbsKn7CglKrBRF9Hz8PyWIWA5nI0qtuEg4iSpZyAwK+OuCc7k9b/WSK7sktivFaIFLo8/1l2fP9lPyCLNtgxw==",
  "signatures": [
    {
      "sig": "MEYCIQDhG7JI39ve9M+/ZmA07vj4XVeWzOfD8oqioD/6LqCHlgIhAMt3kvrjg8bSylA22aEeXnfh1WzNkSP8ktSM6T5G/uGE",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 38427
}

Repository

PENDING
0xhoneyjar/freeside-quests

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 08:56 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:d52609aae9ebf87bb9a5894e2ffc9cefa1a75a0c62541d33c3e76ceb855f15b2

Other collected versions

0.1.24 May0.1.04 MayView all collected versions →