TasteID
HCP · Technical overviewProposed v0.1 · Protocol introduction ↗

The Human Compensation Protocol

Human knowledge.
Verifiable compensation.

One tool call for personal intelligence. The same foundation for industries to query collective behavior. A protocol to account for the people behind each paid answer.

x402 moves the money. HCP is a proposed protocol for proving how the human contributors’ share is allocated—across applications, without publishing their private histories.

Design proposal · Protocol not deployedOwn. Permission. Earn.
In this overview

From personal intelligence
to collective behavior.

People’s account histories contain years of preferences and behavior. TasteID connects those histories with permission, interprets the activity, and builds knowledge about the things people interact with. One person’s profile gives an agent context. Patterns across consenting people give a business audience intelligence.

Music is the first vertical. TasteID pools track identities into a shared catalog and enriches the audio for reuse across listeners. The larger ambition is a graph connecting people, preferences, and what they listen to, watch, and buy.

HCP is the proposed compensation interface beneath that graph. It links a permitted use to a contribution record, a declared allocation rule, and a funded payment obligation. TasteID would be its first application and operator; other applications could implement the same interface.

Target architecture Boundaries, not deployed components

Private, off-chain computation

01 · PeoplePermissioned histories

Versioned data + scoped grants

02 · Query operatorUseful answers

Personal context or audience patterns

03 · AccountingContribution trace

Eligible inputs + allocation policy

Verification & payment

Buyer fundsx402 payment

Bound to the approved request

HCP verifiesAllocation proof

Committed execution + funded pool

People earnAccrue → settle

Private ledger + payout receipts

Working foundation

TasteID’s music capture, audio enrichment, profiles, recommendations and compatibility are live. Google’s CASA security assessment is passed.

Proposed protocol work

Scoped buyer grants, commercial queries, user payouts, contribution proofs and HCP settlement remain to be implemented and validated.

The first proof should be narrow.

Start with a bounded aggregation and allocation program over committed features. Prove which eligible inputs that program used and that the resulting shares follow its declared rule. Proving raw-data authenticity, model inference, or an agent’s entire reasoning process are separate problems.

One authorized use.
A traceable obligation.

Permission to capture an account history is separate from permission to use it for a buyer’s query. A downstream grant must identify the buyer, purpose, data scope, use class, output limits, duration and compensation terms. Personalization, aggregate analysis, export and training are distinct uses.

Proposed records and their bindings
RecordWhat it must identify
Dataset / artifactSource, version, transformation or model version, subject reference and integrity commitment.
Grant snapshotAuthorized parties, purpose, scope, output policy, expiry, terms version and revocation epoch.
Request / quoteAuthenticated buyer, delegated caller, exact query, approved program, price, asset, destination, expiry and idempotency key.
Use / allocationInput and output commitments, program version, eligible contributors, allocation rule, fulfillment evidence and consumer pool.
Payment / settlementVerified funding, its reserved amount, earnings entries, payout destinations, adjustments and settlement references.
  1. Authorize and quote. Authenticate the buyer and agent delegation; evaluate active grants and output controls; quote the specific permitted request. Payment is not authorization to receive personal data.
  2. Fund the request. Use x402 payment requirements and verified settlement. The initial design waits for confirmed buyer funding before release. x402 facilitator reference ↗
  3. Prepare the answer. Run the approved program over a committed input set. Produce the bounded output, private contribution trace and proposed allocation proof.
  4. Verify, recheck and fulfill. Check the proof and current permission state, then publish the authorized result through the release gateway. Persist a fulfillment receipt tied to its output commitment.
  5. Accrue and pay. Finalize eligible earnings from funded, fulfilled use. Reconcile them to reserved funds and settle through the selected payout mechanism.
Payment, delivery and payout are different events.

HTTP delivery, database writes and a chain transaction are not one atomic operation. Durable states and recovery rules must connect them. Fulfillment here means authorized publication of the result; it does not prove the buyer read it or found it valuable.

Prove a defined computation.
Name the remaining trust.

A signed list of “records touched” is not enough. An operator could omit contributors or manufacture a trace. The proof must bind the trace and allocation to execution of the approved program over the committed input set, and bind that execution to the paid request.

Candidate proof statement

Approved request + program + authorized input commitment

Output commitment + eligible contributions + allocation root

Public inputs
Request hash; program and verifier versions; input, grant and output commitments; policy epoch; allocation policy hash and root; asset; consumer pool; settlement domain.
Private witness
Feature records and commitment openings; grant evidence; execution trace; contributor references; allocation leaves and blinding randomness.
Required constraints
Input membership; execution of selection and aggregation; grant eligibility under the committed policy snapshot; contributor deduplication; integer allocation and conservation; binding to this request and settlement domain.

The candidate proof covers only the specified program. If an answer includes unproved model inference, the receipt must identify that boundary. The proof system, commitment construction and circuit have not been selected.

What verification would—and would not—establish
Potential guaranteeRemaining assumption
Computation matches committed inputsThe source data is authentic, complete and representative. A commitment does not prove those properties.
Use fits a grant snapshotThe permission authority recorded a valid grant; the gateway checks its current state and prevents revoked releases.
Shares follow the declared ruleThe rule is economically appropriate. Recorded participation is not proof of causal value to an answer.
Eligible IDs are counted onceThe identity layer resists duplicate people and fraudulent data. Wallets and internal IDs do not prove personhood.
Verification need not reveal historiesThe initial operator and managed prover may still see inputs; commitments and public settlement metadata can leak information.

The verifier cannot detect uses outside the instrumented execution path, force every outside buyer to participate, or prove that a result is useful. HCP aims to make a defined funded obligation verifiable, rather than claiming to eliminate all trust.

An audience answer.
A funded contributor pool.

“Which audience groups are most likely to connect with this release?”

An approved business asks an aggregate question. The operator selects an authorized cohort, runs the declared matching and aggregation program, and returns audience patterns under a defined output policy. Private contribution references support accounting; the business does not receive a list of identified listeners.

Synthetic fixture · Illustrative terms only

10 USDCBuyer charge
2 USDCExample operator fee
8 USDCContributor pool

This arithmetic assumes 10,000 eligible contributor IDs, equal shares, a test asset with six decimals and zero network fee. It is not a measured query, a live cohort, or a chosen commercial fee.

For this fixture, one eligible contributor counts once per fulfilled query, regardless of records, plays or reads. Eligibility includes the authorized inputs used by the declared computation—not just the people in the final audience segment.

poolUnits     = 8_000_000
eligibleCount = 10_000
baseUnits     = floor(
  poolUnits / eligibleCount
) // 800
remainder     = poolUnits % eligibleCount       // 0

// Each contributor accrues 0.0008 USDC.

For a nonzero remainder, a committed deterministic ordering assigns the extra smallest units. The proof checks the sum and each eligible allocation. Earnings can accumulate before a payout; sending a transaction to every person on every query is not required.

Separate the pool from the platform’s margin.

Settled proceeds − refunds
= contributor pool + platform fee + separately charged payment costs

Platform margin
= platform fee − query compute − proving − operating costs

Actual pricing, fee split, payout thresholds and minimum cohort size remain product decisions. A cohort count alone does not establish anonymity, data quality or representative coverage.

Portable receipts.
Explicit settlement bindings.

The interoperability unit is a verifiable use receipt, not a public registry of people’s histories. The following is a design sketch for discussion, not an implemented API, contract ABI or accepted standard.

UseReceipt {
  version, operatorId,
  requestHash, programHash, verifierVersion,
  inputCommitment, grantCommitment, policyEpoch,
  outputCommitment, contributionCommitment,
  allocationPolicyHash, allocationRoot,
  paymentRef, asset, consumerPoolUnits,
  settlementDomain, expiresAt, nonce,
  fulfillmentRef
}

requestHash binds the buyer, delegation, purpose, input scope, output policy and quote. settlementDomain binds the network, contract and protocol version. fulfillmentRef is authenticated gateway evidence of authorized publication, not cryptographic proof that the buyer consumed an HTTP response.

What settleQuery would need to enforce

settleQuery(statement, proof):
  require supportedProgramAndVerifier(statement)
  require validDomainAndExpiry(statement)
  require authenticatedEligibleFulfillment(statement)
  require requestMatchesVerifiedFunding(statement)
  require sufficientUnallocatedFunding(statement)
  require notAlreadyFinalized(statement.requestHash)
  require verifyBoundExecutionAndAllocation(proof, statement)

  reservePool(statement.paymentRef,
              statement.allocationRoot,
              statement.consumerPoolUnits)
  finalizeRequestAndEmitReceipt(statement)

The pool must be funded and reserved exactly once. A payment cannot back multiple independent obligations. A funding adapter must reconcile the x402 collection to escrowed assets or a contract-controlled balance; a transaction hash alone is not spendable backing. The contract also needs authenticated issuers, version governance, emergency controls and safe token handling; the sketch is not production Solidity.

A batch distributor or Merkle-claim contract could discharge the obligation. Claims must bind the funded batch, leaf index, amount and authorized destination, and prevent duplicate withdrawal. Destination enrollment, key recovery, payout timing and custody are open design choices.

x402 payment encoding should use a pinned, tested SDK. Typed receipts may use EIP-712, which does not itself provide replay protection; explicit nonces, domain checks and request-finalization state remain necessary. x402 v2 reference ↗

Keep the books correct.
Keep access scoped.

Funding

Quoted → pending → settled
Refunds tracked separately

Delivery

Reserved → prepared → released
Or blocked / failed

Earnings

Allocated → payable → settled
Corrections are linked entries

Use integer smallest-unit amounts with an explicit asset and network. Keep consumer principal, platform revenue and payment costs separate. Adjustments are append-only; reconciliation connects every obligation to eligible funding. Withdrawing access does not erase already-earned payments.

Failure cases the first implementation must demonstrate
EventRequired behavior
Grant revoked during executionSerialize withdrawal and release at the gateway. Block publication if withdrawal wins; reconcile settled funds under the disclosed refund policy.
Payment settles; delivery failsRetain recoverable state. Retry only while authorized, or refund. Do not silently record a fulfilled use.
Duplicate request / settlement timeoutReconcile the existing request and payment before charging again. One eligible fulfillment creates one allocation.
Cached or derived responseRecheck current authorization before returning data. Track input lineage and apply the declared paid-use rule to reuse.
Invalid proof / insufficient fundingDo not finalize or reserve an unfunded pool. Keep the authorized request recoverable or refundable.
Replayed claim / changed destinationCheck claim state, network, batch and enrolled recipient. Require authenticated destination changes and defined recovery.

Private histories stay off-chain.

Keep source histories, grants, contribution-to-person mappings and wallet enrollment in controlled private storage. A commitment is not encryption. A managed prover may access its witness, and public transfers can reveal timing, amounts and relationships. Blinding, batching and identifier design need a separate leakage analysis.

Aggregate outputs need suppression, query limits and protection against repeated-query differencing. Derived profiles can still be personal data. Revocation blocks future use; deletion must propagate through personal artifacts and caches. Neither can recall plaintext already disclosed or reverse prior model training.

The x402 payment-identifier extension supports payment deduplication; the application must still reconcile access and earnings. x402 batch settlement concerns buyer payment authorization and redemption. Batching payouts to human contributors is a separate HCP design.

An interface other operators
can verify and implement.

The long-term vision is a network of permissioned knowledge. A query could span graphs operated by different applications. Each operator would enforce its own grants and produce a receipt for its contribution and funded share; a coordinator would compose the result under disclosed terms.

That requires more than a common payment address. Cross-operator identity deduplication, grant freshness, overlapping contribution, query composition, coordinator fees and refunds all need explicit rules. A receipt interface is the starting point—not evidence those problems are solved.

TasteID, the company

Builds capture and intelligence products, serves queries and retains a platform fee. Personal utility can bring people into a paid intelligence network.

HCP, the proposed protocol

Defines verifiable contribution and settlement records other operators could implement. Its value depends on useful independent adoption, not a mandatory TasteID database.

Pay for eligible use, not manufactured activity.

Personal history, shared object descriptors and model outputs are different contributions. Their rights and compensation policies may differ. The example’s equal split is an auditable first experiment, not a claim to have solved marginal value. The rule must be declared before a buyer pays.

Paying per imported record or synthetic action could reward spam. Source provenance, duplicate-account defenses, bot detection and self-dealing controls must sit alongside the proof system. Proving an allocation over fraudulent inputs does not make it valuable.

HCP is a working protocol proposal. No HCP ERC has been submitted or accepted, and no HCP verifier or settlement contract is deployed. The first interoperability test is an independent client validating the same receipts and rejection cases.

Make the guarantees
measurable.

Build commercial usefulness and correct accounting first, while prototyping a bounded proof. These are acceptance milestones, not announced dates or completed capabilities.

Build sequence and reviewable evidence
MilestoneEvidence of completion
1 · Scoped useAn approved caller receives only a permitted output; expiry and withdrawal block new and queued releases.
2 · Paid fulfillmentOne verified payment reconciles to one authorized publication, including retry, timeout and refund cases.
3 · People’s earningsA contributor traces an earned amount to eligible use, a versioned allocation policy and a reconciled payout.
4 · Bounded proofA verifier accepts valid execution and allocation, and rejects omitted contributors, changed inputs, altered output, wrong pool and replay.
5 · Independent implementationA second client checks receipt bindings, verifies the proof and passes the same negative conformance cases.

Benchmark the complete cost of an answer.

Run synthetic cohort sizes including 10,000 contributors. Measure witness generation, peak memory, proof time at p50/p95, proof size, verification cost, query compute, payout batching and recovery behavior. Report cost per fulfilled query and per contributor. No performance or profitability result is claimed yet.

Decisions before a funded pilot

Choose the supported query program, permitted source uses, grant authority and freshness rule; the proof backend and key governance; the eligibility and allocation policy; payment collection and custody; refund treatment; recipient enrollment and recovery; and the privacy threat model.

The proposed first buyer rail is x402, with USDC on Base as a candidate settlement asset and network. It is a concrete starting point, not a required partner, exclusive chain, or deployed integration.