- where the validation result must be published
- who is allowed to validate the work
- which job and payment the result belongs to
- which score and result tag are acceptable
PENDING_VALIDATION, and the signed conditions cannot be changed afterward
without invalidating the payer’s authorization.
Why payment needs an outcome layer
A normal payment authorization answers a narrow question:Did this payer authorize this amount, asset, and recipient?That is sufficient when the parties agree that the obligation should become payable immediately. It is not always sufficient for autonomous work. An agent may be buying a dataset, generated artifact, completed workflow, verified computation, model evaluation, or time-sensitive response. In those cases, the buyer may want the payment decision to depend on evidence about the result. Without a validation policy, the payment system can prove authorization and settlement but cannot determine whether:
- the requested job was completed
- the output belongs to the correct request
- a required evaluator approved it
- a measurable quality threshold was reached
- a required result category was published
V1 payment versus a V2 SLA
V1 and V2 guarantees use the same collateral-backed payment foundation. The difference is when the obligation becomes payable.| Question | V1 guarantee | V2 guarantee with an SLA |
|---|---|---|
| What does the payer sign? | Payment terms | Payment terms and validation policy |
| State after Core accepts it | FINALIZED_PAYABLE | PENDING_VALIDATION |
| External validation required | No | Yes |
| Enters netting immediately | Yes, if the cycle is open | No |
| Best fit | Agreed or immediately payable work | Work with an objective acceptance condition |
How a configurable SLA works
The SLA is agreed before the payer signs. This prevents either side from changing the success criteria after work has started. The validation registry does not rewrite the agreement. It publishes evidence. The protocol compares that evidence with the policy the payer already signed.The validation policy
A V2 policy contains several independent checks. Together, they answer where the evidence comes from, who produced it, what it refers to, and what result is good enough.| Field | What it binds |
|---|---|
validation_registry_address | Registry contract that must contain the result |
validation_chain_id | Network on which that registry must exist |
validator_address | Wallet expected to publish or own the validation result |
validator_agent_id | Expected validator agent identity |
validation_subject_hash | Payment or work subject being evaluated |
validation_request_hash | Canonical commitment to the validation request |
job_hash | Specific job, task, or artifact covered by the SLA |
min_validation_score | Lowest acceptable score from 1 through 100 |
required_validation_tag | Required result category or policy label |
Registry and network
validation_registry_address identifies the contract that acts as the source
of validation evidence. Core accepts only registries trusted by the active
deployment.
validation_chain_id prevents evidence from a similarly addressed contract on
another network from satisfying the policy. It must match the Core deployment’s
chain.
The active network and registry allowlist are available from
GET /core/public-params. A proposed
registry that is not in trusted_validation_registries is rejected before
collateral is locked.
Validator identity
validator_address and validator_agent_id identify the evaluator whose
result the payer accepts.
This matters because two validators can inspect the same work and reach
different conclusions. Selecting the validator is therefore part of the
economic agreement, not an implementation detail.
A validator may be:
- an independent evaluation agent
- a deterministic verification service
- an application-specific assessor
- a registry-recognized reviewer
- a system that checks an on-chain or cryptographic outcome
Subject, request, and job binding
Hashes connect validation evidence to the exact work covered by the payment. They prevent a successful result for one task from being reused for another.| Binding | Purpose |
|---|---|
validation_subject_hash | Identifies the subject whose result can affect payment |
validation_request_hash | Commits to the canonical validation request |
job_hash | Connects the SLA to a particular job or artifact |
Score threshold
min_validation_score defines the lowest acceptable score from 1 through 100.
The meaning of that score comes from the validator’s published methodology.
A score of 90 is useful only when everyone knows what is being measured. It
might represent accuracy, policy compliance, completeness, similarity,
confidence, or a composite evaluation. The number alone does not define the
metric.
Good score policies state:
- which evaluator produces the score
- which rubric and version are used
- whether the score is deterministic
- how invalid or missing outputs are scored
- whether the threshold is inclusive
- whether evaluation can be reproduced
Required result tag
required_validation_tag identifies an acceptable result category. Examples
might include completed, verified, policy-compliant, or an
application-defined versioned label.
Tags should have stable, documented meanings. Prefer values such as
schema-valid-v2 over a generic value such as good. Versioning a tag is
helpful when the evaluation rubric changes over time.
The registry result must match both the required tag and the other signed
conditions. A matching tag from the wrong validator does not satisfy the SLA.
What can be expressed as an SLA
The best SLA conditions can be reduced to observable evidence.Strong candidates
Weak candidates
| Human promise | Possible objective representation |
|---|---|
| ”Return valid JSON” | Validator parses the output against a versioned schema |
| ”Complete the workflow” | Validator checks all required workflow states |
| ”Respond within the target” | Trusted observer evaluates signed timestamps |
| ”Reach acceptable accuracy” | Named evaluator scores a fixed test set |
| ”Produce the requested artifact” | Validator compares the artifact hash and required properties |
| ”Use an approved model” | Attestation binds execution evidence to an allowed model version |
An SLA is more than a score
A robust policy answers five questions before payment:- What is being evaluated? Define the job and subject precisely.
- Who evaluates it? Select a validator with an understood methodology.
- Where is the result published? Use a registry trusted by the deployment.
- What counts as success? Set an explicit score, tag, or both.
- What happens if validation never resolves? Define timeout, cancellation, retry, support, and collateral expectations outside the score itself.
SLA strength and trust
Validation replaces one broad trust assumption with several narrower ones. The result is only as meaningful as the full chain:- the payer understood the policy before signing
- the registry is the intended contract on the intended network
- the validator controls the expected identity
- the evaluator measured the intended subject
- the job and request hashes were constructed correctly
- the score and tag have stable semantics
- the lifecycle applies the result to the correct guarantee
Buyer, seller, and validator responsibilities
Buyer
The buyer authorizes both the payment and its validation conditions. Before signing, the buyer should check the amount, recipient, asset, registry, validator, job, threshold, and tag. The buyer should also decide whether the selected evaluator is independent enough for the value and risk of the task. For high-value work, a seller-owned validator may not provide the assurance the buyer expects. Buyer policy can limit approved registries, validators, SLA templates, score thresholds, task values, and maximum time that collateral may remain committed. See trust and verification for the surrounding seller-selection decision.Seller
The seller proposes clear validation requirements, performs the work, preserves delivery evidence, and ensures the validator can evaluate the result. The seller should not treat an issued V2 certificate as immediately payable. It proves that Core accepted the collateral-backed guarantee and its signed policy. The guarantee still begins inPENDING_VALIDATION.
For support and reconciliation, retain the request ID, guarantee ID, job hash,
input and output commitments, timestamps, validator details, registry result,
and settlement status. Privacy-sensitive systems can retain hashes and minimal
metadata instead of full payloads.
The distinction between payment evidence and delivery evidence is covered in
proof and disputes.
Validator
The validator applies the agreed method to the agreed subject and publishes a result that can be matched to the signed policy. A dependable validator should make its identity, scoring method, result semantics, expected response time, versioning policy, and failure behavior understandable. It should avoid producing ambiguous results that cannot be connected to a specific job.4Mica operator and Core
The operator configures which validation registries the deployment trusts. Core checks the signed request, active network, registry allowlist, hashes, accepted guarantee version, and available collateral before issuing the V2 certificate. Core enforces the protocol agreement. It does not write the seller’s quality rubric, execute the job, or independently decide whether the output was useful.Validation and the payment lifecycle
Issuance, validation, and settlement are different events.The parties agree on terms
Core accepts the guarantee
PENDING_VALIDATION.The work is evaluated
The result is matched
FINALIZED_PAYABLE enter bilateral netting. A V2 guarantee
that remains PENDING_VALIDATION, DISPUTED, or CANCELLED is excluded from
the cycle’s payable obligations.
Read bilateral netting cycles for cycle
eligibility and settlements for the resulting payment states.
Collateral while validation is pending
Core locks capacity when it accepts the guarantee, before the validation outcome is known. This gives the seller economically meaningful payment evidence without making the obligation immediately payable. Pending validation therefore has a cost for the payer: the reserved capacity cannot simultaneously back unlimited new guarantees or be withdrawn as if it were unused. Long or unreliable validation processes can reduce available spending capacity. Buyers should account for:- expected validation duration
- the number of concurrent pending jobs
- the maximum value of each job
- validator and registry availability
- cancellation or resolution procedures
- other guarantees and settlement obligations using the same collateral
Latency, availability, and retries
Traditional SLAs often focus on uptime and response time. These promises can be part of a V2 payment condition only when the validation system can verify them reliably. For example, a latency SLA needs an agreed clock, start event, completion event, and trusted observer. A seller’s own unsigned timestamp is usually not enough to prove that a response met the deadline. Similarly:- availability needs a defined measurement window and observation source
- retry limits need a stable request identity and idempotent behavior
- partial completion needs a rubric or staged payment design
- timeout handling needs an explicit product and lifecycle policy
- refunds remain an application policy unless represented by an enforceable payment or validation flow
Designing an effective SLA
Start with the buyer’s actual acceptance question, then reduce it to the smallest reliable set of checks.| Design question | Good answer |
|---|---|
| What exact output is covered? | A versioned job description or content commitment |
| How is the output connected to payment? | Stable subject, request, and job hashes |
| Who may judge it? | A named validator address and agent identity |
| How is success measured? | Published rubric with a score threshold or precise tag |
| Where is evidence stored? | An allowlisted registry on the signed network |
| What if no result arrives? | Defined timeout, cancellation, escalation, or retry policy |
| What evidence is retained? | Payment, work, validation, and resolution records |
Common SLA patterns
Deterministic computation
Deterministic computation
Generated structured output
Generated structured output
Model or agent evaluation
Model or agent evaluation
Workflow completion
Workflow completion
Time-sensitive delivery
Time-sensitive delivery
Failure modes
An SLA can fail because the work failed, but it can also fail because the agreement or evidence pipeline was designed incorrectly.| Failure | Effect |
|---|---|
| Registry is not allowlisted | Core rejects the V2 guarantee before issuance |
| Validation chain is wrong | Policy does not match the active deployment |
| Validator identity differs | Published result cannot satisfy the signed policy |
| Subject or job hash differs | Evidence refers to different work |
| Score is below the threshold | Validation condition is not met |
| Required tag differs | Result category is unacceptable |
| Result never arrives | Guarantee can remain pending until lifecycle resolution |
| Rubric is ambiguous | Parties may disagree even though a result was published |
| Validator is compromised | Incorrect evidence may appear valid under the selected trust model |
| Sensitive inputs are exposed | Public evidence can create privacy or confidentiality risk |
Privacy and data minimization
Validation evidence may be visible beyond the buyer and seller, especially when stored in an on-chain registry. Do not publish confidential prompts, customer records, proprietary outputs, credentials, or personal data merely to make an SLA verifiable. Prefer commitments and minimal metadata:- hash the normalized job or artifact
- retain the original data in an access-controlled system
- publish only the result fields required by the policy
- avoid low-entropy hashes that reveal guessable private values
- document who can access supporting evidence
- keep retention periods proportional to audit and dispute needs
Frequently asked questions
Does V2 guarantee that the output is high quality?
Does V2 guarantee that the output is high quality?
Can the SLA be changed after the payer signs?
Can the SLA be changed after the payer signs?
Who chooses the validator?
Who chooses the validator?
Is an issued V2 guarantee already payable?
Is an issued V2 guarantee already payable?
PENDING_VALIDATION. It must follow the
applicable validation and lifecycle rules before it can enter a payable or
validation-based remuneration path.What happens when validation fails?
What happens when validation fails?
What happens when the validator never responds?
What happens when the validator never responds?
Can an SLA enforce refunds?
Can an SLA enforce refunds?
Can I use several validators?
Can I use several validators?
Does the validation registry hold the payer's funds?
Does the validation registry hold the payer's funds?