Acceptance Tiers
Three tiers of terms acceptance -- implicit, explicit, and negotiated -- each providing different levels of legal proof.
The protocol defines three tiers of terms acceptance, each providing a different level of proof. Implementations MUST support Tier 1. Implementations SHOULD support Tier 2. Implementations MAY support Tier 3.
The acceptance tiers describe how strong the legal proof is for a given transaction. They are orthogonal to the adoption parts (described in Getting Started), which describe how much integration an implementer has done.
Tier 1: Implicit Acceptance
Trigger: The transaction itself constitutes acceptance.
Legal basis: Equivalent to browsewrap/clickwrap agreements. Established under the Uniform Electronic Transactions Act (UETA, adopted by 49 U.S. states plus D.C.) and the Electronic Signatures in Global and National Commerce Act (E-SIGN, 15 U.S.C. 7001-7006). For EU jurisdictions, equivalent basis is provided by eIDAS Regulation (EU) No 910/2014.
Requirements
- The vendor MUST have a valid IntegraRecord with the current terms
- The contentHash MUST be discoverable (via
legal-context.jsonor embedded in the protocol flow) - The contentHash SHOULD be included in the payment memo/metadata
Proof
The transaction timestamp falls within the effective date range of the terms identified by the contentHash. The terms registry (IntegraRecord) provides "reasonable notice" -- terms were published, publicly accessible, and associated with the service.
What Is NOT Required
- No per-transaction on-chain recording beyond the payment itself
- No explicit acceptance signature
- No tokenizer or agent authorization checking
- No direct agent interaction with the ALC API
Trust in Depth Mapping
| Layer | Implementation |
|---|---|
| L1: Human Identity | Inherited from payment rail |
| L2: Entity Attestation | Inherited from vendor's IntegraRecord |
| L3: Agreement Integrity | contentHash + IntegraRecord = permanent, verifiable terms record |
| L4: Agent Authorization | Not required at Tier 1 |
Tier 2: Explicit Acceptance
Trigger: The counterparty signs the contentHash before or alongside the transaction.
Legal basis: Equivalent to a signed contract. Affirmative consent to specific terms, cryptographically provable.
Requirements
- All Tier 1 requirements
- The vendor MUST set
acceptanceRequired: trueinlegal-context.json - The counterparty MUST submit an EIP-712 TermsAcceptance signature (see Proof of Intent)
- The acceptance MUST be recorded via the API (
POST /v1/records/{recordId}/accept)
Proof
The signed acceptance binds a specific identity (address) to a specific document (contentHash) at a specific time (timestamp). The signature is verifiable on-chain.
Trust in Depth Mapping
| Layer | Implementation |
|---|---|
| L1: Human Identity | Verified -- party must be identifiable before signing |
| L2: Entity Attestation | Verified -- entity behind agent must be attributable |
| L3: Agreement Integrity | contentHash + IntegraRecord + signed acceptance = strong proof |
| L4: Agent Authorization | Required -- delegation chain must be provable |
Tier 3: Negotiated Terms
Trigger: Two or more parties dynamically negotiate terms before transacting.
Legal basis: Traditional contract formation -- offer, counter-offer, acceptance.
Requirements
- All Tier 2 requirements
- Each proposal and counter-proposal SHOULD be content-addressed (each has its own contentHash)
- Both parties MUST sign the final agreed terms via EIP-712 NegotiatedAgreement typed data
- An IntegraRecord MUST be created on-chain for the final agreed terms
- A dispute resolution resolver MUST be attached to the record
Proof
Complete evidence chain -- negotiation history (chain of contentHashes), final terms (mutually signed), authorization scope (terms policy), and IntegraRecord (on-chain, immutable).
Trust in Depth Mapping
| Layer | Implementation |
|---|---|
| L1: Human Identity | Verified + attributable for both principals |
| L2: Entity Attestation | Verified + auditable authority chains |
| L3: Agreement Integrity | Full negotiation history + final terms in IntegraRecord |
| L4: Agent Authorization | Required + scoped via terms policy |
Tier Comparison
| Aspect | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| Trigger | Transaction | Signature | Mutual signatures |
| Legal basis | Browsewrap | Signed contract | Negotiated contract |
| EIP-712 signature | Not required | Required (one party) | Required (both parties) |
| On-chain record | Vendor's IntegraRecord | + acceptance record | + negotiated agreement record |
| Agent authorization | Not required | Required | Required + terms policy |
| Volume | Billions daily | Millions daily | Thousands to millions daily |
| Value per transaction | Micro to low | Medium to high | High to very high |
How ALC Primitives Map to Each Tier
| Primitive | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| IntegraExistence | Terms document hash | Terms document hash | Each draft + final content hash |
| IntegraRecord | One per terms version | + acceptance records | One per negotiated agreement |
| contentHash | In payment memo | + acceptance signature | + mutual signatures |
| Document Location Resolver | Where to find terms | Where to find terms | + negotiation history |
| Contact Resolver | Who to contact | Who to contact | Both parties |
| Dispute Resolver | Lightweight/automated | Defined process | Negotiated process |
| Tokenizer | Not required | Agent delegation | Full authorization scope |
| Escrow Resolver | Not applicable | Optional | Common |
| State Transition Resolver | Not applicable | Optional | Required |
| ADR Resolver | Rarely invoked | Available | Essential |