---
subject: https://integralens.store
requested: https://integralens.store/
stages: [Discoverable, Agreeable, Transactable, Provable]
ceiling: [Discoverable, Agreeable, Transactable, Provable]
rubric: 0.3.0
rubric_sha256: 0x5710a7d11733b7ca2ba68bc67ecd7b859eb79847e314ef8eedb4301d5f51ce51
probed: 2026-10-05T20:28:31.521Z
engine: lens@0.1.0+dev
fingerprint: 0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc
report_url: https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc.json
---

# integralens.store

**Provable** · Checked 5 Oct 2026, 20:28 UTC

AI agents can prove what was agreed, from the record the payment carries.

| Stage | Needed checks |
|---|---|
| **Discoverable** ✓ Reached | `✓✓` All 2 needed checks pass |
| **Agreeable** ✓ Reached | `✓✓✓✓✓✓✓✓✓` All 9 needed checks pass |
| **Transactable** ✓ Reached | `✓✓` All 2 needed checks pass |
| **Provable** ✓ Reached | `✓✓✓` All 3 needed checks pass |

Every stage is reached.

[See the whole plan · 3 fixes](https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/plan)

## Discoverable · Reached

**Can AI agents find what you sell?** An agent starts with your address and nothing else.

### Findings · 2 of 2 pass

| Check | Status | What Lens found |
|---|---|---|
| **Catalog** `✓┃✓✓` | 1 of 1 pass |  |
| Product details software can read | ✓ Passed |  |
| **Access** `✓` | 1 of 1 pass |  |
| Letting honest AI agents in | ✓ Passed |  |

### Beyond the minimum

Checks this stage grades but does not require.

| Check | Status | What Lens found |
|---|---|---|
| **Catalog** `✓✓` | 2 of 2 pass |  |
| A product list AI agents can download | ✓ Passed |  |
| An agent interface that answers product searches | ✓ Passed |  |

### Commercial certainty

How sure a buyer's agent can be of the deal, beyond what the stage needs. Scored apart from the stage.

| What a buyer's agent needs | Level | Missing |
|---|---|---|
| Keeps working after updates | `––––` 1 of 5 |  |

## Agreeable · Reached

**Do AI agents know what they would agree to?** Before it commits someone's money, an agent needs the seller, the exact product, the full price and the terms.

### Findings · 9 of 9 pass

| Check | Status | What Lens found |
|---|---|---|
| **Terms** `✓✓✓✓┃✓✓✓` | 4 of 4 pass |  |
| Terms of sale AI agents can read | ✓ Passed |  |
| Dated terms | ✓ Passed |  |
| Versioned terms | ✓ Passed |  |
| Terms that stay the same | ✓ Passed |  |
| **Seller** `✓` | 1 of 1 pass |  |
| Your legal name, machine-readable | ✓ Passed |  |
| **Product** `✓` | 1 of 1 pass |  |
| Product identifiers | ✓ Passed |  |
| **Price** `✓✓✓┃✓` | 3 of 3 pass |  |
| Prices software can read | ✓ Passed |  |
| Whether tax is included | ✓ Passed |  |
| The total before committing | ✓ Passed |  |

### Beyond the minimum

Checks this stage grades but does not require.

| Check | Status | What Lens found |
|---|---|---|
| **Terms** `✓✓✓` | 3 of 3 pass |  |
| Terms in a clean format | ✓ Passed |  |
| The same terms everywhere | ✓ Passed |  |
| Terms locked by a fingerprint | ✓ Passed |  |
| **Price** `✓` | 1 of 1 pass |  |
| How long a price holds | ✓ Passed |  |
| **Agreement record** `✓✓` | 2 of 2 pass |  |
| A checkable record of each agreement | ✓ Passed |  |
| The terms inside each agreement | ✓ Passed |  |

### Commercial certainty

How sure a buyer's agent can be of the deal, beyond what the stage needs. Scored apart from the stage.

| What a buyer's agent needs | Level | Missing |
|---|---|---|
| Returns and disputes | `✕✓✓✓` 1 of 5 | Missing: a returns policy page. |

## Transactable · Reached

**Can AI agents buy without a browser?** An agent needs a checkout it can complete without a browser, and a way to pay built for agents.

### Findings · 2 of 2 pass

| Check | Status | What Lens found |
|---|---|---|
| **Purchase** `✓✓┃✓` | 2 of 2 pass |  |
| Order links AI agents can build | ✓ Passed |  |
| A checkout for AI agents | ✓ Passed |  |

### Beyond the minimum

Checks this stage grades but does not require.

| Check | Status | What Lens found |
|---|---|---|
| **Purchase** `✓` | 1 of 1 pass |  |
| A way for AI agents to pay | ✓ Passed |  |

### Commercial certainty

How sure a buyer's agent can be of the deal, beyond what the stage needs. Scored apart from the stage.

| What a buyer's agent needs | Level | Missing |
|---|---|---|
| In stock, with a delivery date | `✓✕✓✓` 2 of 5 | Missing: stock level. |

## Provable · Reached

**Can both sides prove what was agreed?** With no person watching, the proof of the deal has to travel with the payment.

### Findings · 3 of 3 pass

| Check | Status | What Lens found |
|---|---|---|
| **Agreement record** `✓✓` | 2 of 2 pass |  |
| A checkable record of each agreement | ✓ Passed |  |
| The terms inside each agreement | ✓ Passed |  |
| **Binding** `✓┃✓–` | 1 of 1 pass |  |
| The agreement inside the payment | ✓ Passed |  |

### Beyond the minimum

Checks this stage grades but does not require.

| Check | Status | What Lens found |
|---|---|---|
| **Product** `✓✕–` | 1 of 3 pass |  |
| Identifiers that lead somewhere | ✓ Passed |  |
| Signed product records | ✕ To fix · Outside vendor · Weeks | We didn't find a signed record of what the product is from a party tied to you or the brand. |
| Product versions on record | – Not checked |  |
| **Seller** `✕◌` | 0 of 2 pass |  |
| A registered company behind the site | ✕ To fix · Legal · Weeks to months | We didn't find a legal entity on your site that a public register confirms. |
| Verified by an independent party | ◌ Waiting |  |
| **Binding** `✓–` | 1 of 2 pass |  |
| A proof anyone can check | ✓ Passed |  |
| Agreements proven on a public ledger | – Not checked |  |

## The plan · 3 fixes

### Go further · 3 fixes

No stage needs these.

| # | Fix | Owner | Typical time | After |
|---|---|---|---|---|
| 1 | [Signed product records](https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/checks/R8.4#fix) | Outside vendor | Weeks |  |
| 2 | [A registered company behind the site](https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/checks/R7.3#fix) | Legal | Weeks to months |  |
| 3 | [Verified by an independent party](https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/checks/R7.4#fix) | Marketing | Weeks to months | after 2 |

### By owner

| Owner | Fixes |
|---|---|
| Outside vendor | 1 |
| Legal | 2 |
| Marketing | 3 |

Each fix's exact change is in the technical appendix, under its number.

## Technical appendix

For your engineers: each check's code and recorded outcome, the evidence behind it, and how to check this report without trusting Lens.

### The fixes in detail

Numbered as in the plan.

| # | Code | Fix | What to do |
|---|---|---|---|
| 1 | R8.4 | Signed product records | Publish product passports signed by the seller or the brand owner. *How Lens re-checks it:* A signed product passport, linked from the product page and issued by a party bound to your site, verifies and names the same product, for at least 90% of the products checked. |
| 2 | R7.3 | A registered company behind the site | Publish legalName and a register identifier (an LEI, an EU VAT number, a CIK, a UK company number or an ABN) in schema.org/Organization, writing the name as the register does. *How Lens re-checks it:* A public register confirms an identifier you publish, under the same legal name. |
| 3 | R7.4 | Verified by an independent party | Obtain a Verified Mark or Common Mark Certificate for the domain and publish it in its BIMI record, or a Digital Identity Anchor from your business register linked from your DID document. *How Lens re-checks it:* A verified mark certificate for your domain, in your BIMI record, chains to a listed root, is not revoked, and names the organization a register confirmed. |

### Ladders

Each ladder's level is the highest rung whose checks, and every one below it, pass. The ceiling is the level it could reach if every check Lens couldn't make had passed.

| Code | Ladder | Level | Ceiling |
|---|---|---|---|
| R1 | Catalog | 4 of 4 |  |
| R2 | Purchase | 4 of 4 |  |
| R3 | Access | 2 of 2 |  |
| R4 | Terms | 8 of 8 |  |
| R6 | Binding | 3 of 4 | 4 |
| R7 | Seller | 2 of 4 |  |
| R8 | Product | 3 of 5 |  |
| R9 | Price | 5 of 5 |  |
| R10 | Agreement record | 3 of 3 |  |

### Every check

30 checks, by ladder, lowest rung first.

| Code | Check | Recorded | Reason | Asked as · from |
|---|---|---|---|---|
| R1.2 | Product details software can read | `met` · Passed | https://integralens.store/products/standard-sweatshirt carries a structured product in JSON-LD: "Wear the Standard Sweatshirt", with a price and a currency. | anon · cf-worker |
| R1.3 | A product list AI agents can download | `met` · Passed | https://integralens.store/products.json?limit=10 answers with 8 catalog product(s), each with a title and a price. | anon · cf-worker |
| R1.4 | An agent interface that answers product searches | `met` · Passed | An agent queried the catalog at https://integralens.store/openapi.json, through OpenAPI operations declaring x-payment-info. | anon, ucp · cf-worker |
| R2.2 | Order links AI agents can build | `met` · Passed | An agent can pay: Lens met an x402 v2 challenge (exact on eip155:84532). That meets R2.3 too, through R2.4. That meets R2.2 too, through R2.3. | anon · cf-worker |
| R2.3 | A checkout for AI agents | `met` · Passed | An agent can pay: Lens met an x402 v2 challenge (exact on eip155:84532). That meets R2.3 too, through R2.4. | anon · cf-worker |
| R2.4 | A way for AI agents to pay | `met` · Passed | An agent can pay: Lens met an x402 v2 challenge (exact on eip155:84532). | anon · cf-worker |
| R3.2 | Letting honest AI agents in | `met` · Passed | The home page admits an AI agent that says what it is, and so does the agent surface it publishes (/.well-known/legal-context.json). | anon · cf-worker |
| R4.2 | Terms of sale AI agents can read | `met` · Passed | https://integralens.store/terms.md is served as text an agent can read (446 words), and the site declares it as its terms. | anon · cf-worker |
| R4.3 | Dated terms | `met` · Passed | The terms are dated: "Last updated: October 4, 2026". | anon · cf-worker |
| R4.4 | Versioned terms | `met` · Passed | The terms state their version: "Version 1.2". | anon · cf-worker |
| R4.5 | Terms that stay the same | `met` · Passed | Two fetches of the terms returned identical bytes (0x9e3a5c3e85095e32957b2215dc226f87b422ce3f929370564562a67d9deb6b03). | anon · cf-worker |
| R4.6 | Terms in a clean format | `met` · Passed | The terms are served as text/markdown. | anon · cf-worker |
| R4.7 | The same terms everywhere | `met` · Passed | The model found that the terms shown elsewhere state the same terms as the legal context's. The model's notes: No differences found. Judged by google/gemini-3.8-flash, prompt R4.7@1, on the evidence cited. | anon · cf-worker |
| R4.8 | Terms locked by a fingerprint | `met` · Passed | The legal context pins its terms by atrHash, and both fetches of the terms hash to it. | anon · cf-worker |
| R6.2 | The agreement inside the payment | `met` · Passed | The buyer's approval of the payment carries H: the x402/exact/eip155/eip3009 pairing's pattern states that the buyer signs over it. | anon · cf-worker |
| R6.3 | A proof anyone can check | `met` · Passed | A stranger can check the binding from public data alone: the x402/exact/eip155/eip3009 pairing's pattern states a public proof. | anon · cf-worker |
| R6.4 | Agreements proven on a public ledger | `not_tested` · Not checked | The settled payment check was skipped: no consent from the seller to a nominal transaction (decision 13). | not established — it cites no exchange |
| R7.2 | Your legal name, machine-readable | `met` · Passed | The seller names its legal entity at https://integralens.store/products/standard-sweatshirt: "Integra Ledger, Inc.". | anon · cf-worker |
| R7.3 | A registered company behind the site | `not_met` · To fix | The site names no legal entity with a register identifier (leiCode, vatID, taxID, duns, iso6523Code, globalLocationNumber, or an identifier PropertyValue such as a CIK or a company number): not in the schema.org Organization of any page Lens read, the UCP profile or the DID document. | anon · cf-worker |
| R7.4 | Verified by an independent party | `not_met` · Waiting | The site holds no third-party credential bound to its domain that Lens can see. BIMI: integralens.store publishes no BIMI record at default._bimi.integralens.store. UNTP DIA: no DID the origin links names a Digital Identity Anchor (a service of type untp:dia). | lens, anon · cf-worker |
| R8.2 | Product identifiers | `met` · Passed | 11 of 11 sampled products carry a valid, consistent identifier (0 with a global identifier, 11 merchant-scoped only), over a sample of 11 products (8 from the catalog, 3 from product pages): at least 90%. | anon · cf-worker |
| R8.3 | Identifiers that lead somewhere | `met` · Passed | 3 of the 3 products Lens resolved, drawn from a sample of 11 products (8 from the catalog, 3 from product pages), resolve to the product's own record, at least 90%. Wear the Standard Sweatshirt (identifier https://integralens.store/products/standard-sweatshirt): the identifier is on the seller's domain and is the product page Lens read, which answered HTTP 200. LCP Icon Tritan Water Bottle (identifier https://integralens.store/products/lcp-icon-tritan-water-bottle): the identifier is on the seller's domain and is the product page Lens read, which answered HTTP 200. INTEGRA Lens logo T-Shirt (identifier https://integralens.store/products/integra-lens-logo-t-shirt): the identifier is on the seller's domain and is the product page Lens read, which answered HTTP 200. | anon · cf-worker |
| R8.4 | Signed product records | `not_met` · To fix | The product page links no product record: no dpp link (an HTML link element or a Link header), and no schema.org hasDigitalProductPassport. | anon · cf-worker |
| R8.5 | Product versions on record | `not_tested` · Not checked | Same reason as R6.4. | not established — it cites no exchange |
| R9.2 | Prices software can read | `met` · Passed | https://integralens.store/products/standard-sweatshirt publishes a price and its currency machine-readably. | anon · cf-worker |
| R9.3 | Whether tax is included | `met` · Passed | https://integralens.store/products/standard-sweatshirt: an offer states that its price excludes tax. | anon · cf-worker |
| R9.4 | The total before committing | `met` · Passed | https://integralens.store/products/standard-sweatshirt: delivery is priced before purchase. | anon · cf-worker |
| R9.5 | How long a price holds | `met` · Passed | https://integralens.store/products/standard-sweatshirt: an offer states that its price holds until 2026-12-31. | anon · cf-worker |
| R10.2 | A checkable record of each agreement | `met` · Passed | The buyer gate passes: the x402/exact/eip155/eip3009 challenge advertises H and its link, and both fetches of the agreement record hash to H. The pairing states what a payment through it proves: "The payer signed an EIP-3009 transfer authorization whose nonce is this ATR's hash. The token contract verified that signature when it executed the transfer, and the hash is on chain as the nonce topic of its AuthorizationUsed event in the settlement transaction. This does not show that amount, payee, asset or timing match the ATR's content." | anon · cf-worker |
| R10.3 | The terms inside each agreement | `met` · Passed | The agreement record contains the published terms digest 0x9e3a5c3e85095e32957b2215dc226f87b422ce3f929370564562a67d9deb6b03. | anon · cf-worker |

**Every digest, whole.** Each digest is the SHA-256 of bytes the probe captured, and those bytes are served at the address below, so re-hashing what you fetch must give the same value.

```
https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/evidence/<sha256>
```

```
0xb6ed044e8d8767b3eed40e16024cda8557fde289dfe9aba65842a03ae37b4f71  R1.2 R7.2 R8.2 R8.3 R8.4 R9.2 R9.3 R9.4 R9.5
0xb9dcbdc4bbe31b411ec1ecabfef71b9412a764cd4e622d967290ad6ca51e9d44  R1.3 R8.2 R8.3
0x4aac4951f95929d3a501dcf96e1a10541cfff3c91a0735c1c7756454d11f58e9  R1.4 R2.2 R2.3 R2.4
0xe44a27da79e938a3882971d492289768a846126df3058885ed2903e61e7fd227  R2.2 R2.3 R2.4 R6.2 R6.3 R10.2 R10.3
0x05da472032229946b97020179bb1421948132cc167e7a52b7d0d1dfeb0bed876  R3.2 R7.3
0xc6ad122e6e5c8c04135ebf0614a5352f80f118b79437b06f59c469a150995970  R3.2 R4.7 R4.8 R10.3
0x1c0efdd71540bbbfa9decf1d568cf064ec9a45cfceeef3d1ecbdb9c8ba492daf  R4.2 R4.3 R4.4 R4.5 R4.6 R4.7 R4.8
0x0cdee9b8deaa77b3a1cd7fcea06fab294b68ad9a5dcef9898cb87ef96ebd056b  R4.5 R4.8
0x9130ac774f2bfd56a83ad5b4a30ea212f718a2a001dc57e49b8583bc9e61a59b  R4.7
0xf9b7b8d61f8f9e88bc67a926ca9ed79f7e6d6ca3dfd84e92012f22cf46cd85cd  R6.2 R6.3 R10.2 R10.3
0x8e5c83b68474eadc8ff7e52e2871edba5422f0b44467017ec43dc24649cde088  R6.2 R6.3 R10.2 R10.3
0xab0bec07089d725d5ddfe0c79ce8c7e98cb1131ff5dc5dbd702bae673867ab5c  R7.3
0x9ad68bd418e3e5c728c8adf3ef8050570af73514407ba54221416699f19607d2  R7.3 R7.4
0x8eb00e383fbe0b3da0ac5c3e26aa1e15468ec55871d578a57eba8b04e223f7c7  R7.4
0x2c717f07a4322aa7619ef353f3249d35cb89d9e879bc08373cbbff20bc3a931f  R7.4
0x050a6c9411a54d452b3577f6bf6f9c66534bfe8d69081dfca3b390ecab09a42d  R8.2 R8.3
0xc4959c108b933b9458be51d9ea87435f7c4420ef893eb4e1941c4103e877c0e0  R8.2 R8.3
```

### Commercial certainty, rung by rung

| Code | Ladder | Recorded | Reason | What to do |
|---|---|---|---|---|
| C2.2 | Fulfillment certainty | `met` | Availability is published per item. |  |
| C2.3 | Fulfillment certainty | `not_met` | Availability is stated only as in or out of stock. | Publish `inventoryLevel`, or `availabilityStarts` where an item is awaiting restock. |
| C2.4 | Fulfillment certainty | `met` | A delivery estimate is published before purchase. |  |
| C2.5 | Fulfillment certainty | `met` | Delivery is priced per destination. |  |
| C3.2 | Recourse | `not_met` | No returns or cancellation document was found. | Publish the returns policy at its own URL and link it. |
| C3.3 | Recourse | `met` | A returns policy is published machine-readably. |  |
| C3.4 | Recourse | `met` | The return window or category is given as a value. |  |
| C3.5 | Recourse | `met` | A route to a human is published. |  |
| C4.2 | Continuity | `not_tested` | No UCP profile was served, so this was not assessed. |  |
| C4.3 | Continuity | `not_tested` | No UCP profile was served, so this was not assessed. |  |
| C4.4 | Continuity | `not_tested` | No UCP profile was served, so this was not assessed. |  |
| C4.5 | Continuity | `not_tested` | No UCP profile was served, so this was not assessed. |  |

### Coverage

Coverage `partial`: 28 of 30 checks reached a verdict. Stages reached: Discoverable, Agreeable, Transactable, Provable. Within the ceiling: Discoverable, Agreeable, Transactable, Provable.

| Status | Recorded | Count | What it means |
|---|---|---|---|
| ✓ Passed | `met` | 25 | The evidence Lens captured satisfies the check. |
| ✕ To fix | `not_met` | 2 | The evidence does not satisfy the check. It is a fix in the plan. |
| ◌ Waiting | `not_met` | 1 | Not met because an earlier check on its ladder is not met. It is in the plan, after that fix. |
| – Not checked | `not_tested` | 2 | Lens did not run this check, and the reason says why. It counts neither as passed nor as failed. |
| – Not checked | `inconclusive` | 0 | Lens ran this check and got no answer, for a reason on its own side, such as a timeout. It counts neither way. |
| ∅ Doesn't apply | `n/a` | 0 | The check's question has nothing to apply to on this site. It counts neither way. |
| All checks |  | 30 | 30 apply to this site |

| Route status | Count | What it means |
|---|---|---|
| Met | 19 | A check passed by this route. |
| Seen | 1 | Lens found this route's surface, and it met no check. |
| Absent | 47 | Lens did not find this route's surface. That includes a route it was refused or did not request, so it is not proof the route is missing. |
| Not checked | 8 | Lens does not read this route yet. It counts neither for nor against the site. |

### Legal Context Protocol

Read from the same probe, and never scored: no stage depends on it.

| Item | What Lens read |
|---|---|
| Conformance level | 2 · terms pinned by their digest |
| Read by | `@integraledger/lcp@0.2.0` |
| Discovery document (LCP §2) | https://integralens.store/.well-known/legal-context.json · `met` |
| Terms, served standalone (LCP §2.3) | https://integralens.store/terms.md · `met` · The terms are a standalone document: https://integralens.store/terms.md answers 200 with 2492 bytes of text/markdown. |
| Terms pinned by their digest | `met` · The legal context pins its terms by atrHash, and both fetches of the terms hash to it. |
| Published terms digest | `0x9e3a5c3e85095e32957b2215dc226f87b422ce3f929370564562a67d9deb6b03` |
| Members declared | `atrHash`, `contact`, `terms`, `termsFormat` |
| Dispute clause identifier | None declared |
| Placements of the agreement record's hash | x402/exact/eip155/eip3009: the buyer signs over it; a stranger can check it; record matches its hash `met`; record contains the terms digest `met`. H `0x649f2acc906bc779365ccca2543668352e0defd21d7a04a21c894275d98e589a` |
| Settlement read | No settled payment was named or made. |

### Identities

Who Lens said it was. Every request names the identity that made it.

| Identity | Kind | Sends | Status |
|---|---|---|---|
| anon | Anonymous HTTP | IntegraLens/0.1.0 (+https://lens.integraledger.com/probe) | Cited by 28 checks |
| ucp | UCP platform | IntegraLens/0.1.0 (+https://lens.integraledger.com/probe) · UCP profile https://lens.integraledger.com/.well-known/ucp | Cited by 1 check |
| signed | Signed agent | IntegraLens/0.1.0 (+https://lens.integraledger.com/probe) | Configured (web-bot-auth) · No check cites it |
| lens | Lens infrastructure | Lens's own requests to third-party services, such as a register or a ledger | Cited by 1 check |

### Observations and notes

Recorded beside the checks, and scored by nothing.

| Observation | Detail | Evidence |
|---|---|---|
| Treats an agent that proves who it is no better than one that does not | The site answered Lens signing as a verified agent the same as an AI agent that says what it is at every address compared. Proving who the agent is changed nothing. | 4 |
| The buyer's authorization of the payment is signed | The payment is proven: the buyer's authorization is signed through the x402/exact/eip155/eip3009 pairing, whose pattern states that the buyer signs. | 1 |
| Publishes no keys bound to its domain | The site publishes no key bound to its domain: no keys[] with a kid in a UCP profile, no did:web document or DID configuration naming keys, no JWKS (at /.well-known/jwks.json or through an OpenID Provider's jwks_uri), no signed A2A agent card, no did:webvh log and no Web Bot Auth key directory. | 6 |
| No privacy-policy link was found on the home page | The home page, as served without running its scripts, links to no privacy policy by its language's phrases or a privacy path. | 1 |

```
access.verified-agent         0x037e7bd2e1b586a7725236653c2cc233e4e710e732248f458fbaca85e774a6be
access.verified-agent         0xc73730b4b2cb46602afd03f9cc4cafeb90c987e5c460c8ed734167275ba174b5
access.verified-agent         0xdd8c129512a417b0a030857ff6d7756cf3b03723960d73ede71960ad879d4cdd
access.verified-agent         0x71a89d5112519654543ad8fb6bd725ab181d0210acf0995165f2c5f49277c82e
payment.signed-authorisation  0xe44a27da79e938a3882971d492289768a846126df3058885ed2903e61e7fd227
seller.keys                   0x9ad68bd418e3e5c728c8adf3ef8050570af73514407ba54221416699f19607d2
seller.keys                   0x2c717f07a4322aa7619ef353f3249d35cb89d9e879bc08373cbbff20bc3a931f
seller.keys                   0xd60d52a955299ae79509375cd742709ec5cbd12d4169853277ef7ea5f370ede5
seller.keys                   0x0f1ba78beb749f3394ef537e1cb5d156b7ed38705812a86d6eba5cc05bd12455
seller.keys                   0x49f2507e64511af41f6892284a8266bd21bdc136e0b409c03d971bd954d215b7
seller.keys                   0xe4be7a756434c0e68240fb0bbf041610f7cfc0b67c2a4ec7a91281729c2433c7
terms.privacy-policy          0x05da472032229946b97020179bb1421948132cc167e7a52b7d0d1dfeb0bed876
```

**Notes from the probe**

| Step | Kind | Note |
|---|---|---|
| `schemamap` | `skip` | robots.txt names no schema map on the site's domain |
| `ucp.handshake` | `skip` | no UCP business profile |
| `product` | `skip` | product records: the product page links no product record (rel=dpp, or schema.org hasDigitalProductPassport) |
| `registers` | `skip` | registers: Companies House is not queried, because no COMPANIES_HOUSE_KEY is set |
| `registers` | `skip` | registers: ABN Lookup is not queried, because no ABN_GUID is set |
| `settle` | `skip` | no consent from the seller to a nominal transaction (decision 13) |

### Standards cited

| Standard | Where to read it |
|---|---|
| UCP, the Universal Commerce Protocol | https://ucp.dev |
| ACP, the Agentic Commerce Protocol | https://github.com/agentic-commerce-protocol/agentic-commerce-protocol |
| AP2, the Agent Payments Protocol | https://github.com/google-agentic-commerce/AP2 |
| x402 | https://x402.org |
| MPP, the Machine Payments Protocol | https://paymentauth.org |
| MCP, the Model Context Protocol | https://modelcontextprotocol.io |
| LCP, the Legal Context Protocol | https://integraledger.com |
| ATR, the agreement transaction record | https://www.npmjs.com/package/@integraledger/lcp |
| Web Bot Auth (RFC 9421 signatures) | https://datatracker.ietf.org/doc/draft-ietf-webbotauth-httpsig-protocol/ |
| robots.txt (RFC 9309) | https://www.rfc-editor.org/rfc/rfc9309.html |
| schema.org Product | https://schema.org/Product |
| GTIN and GS1 Digital Link | https://www.gs1.org/standards/gs1-digital-link |
| LEI (ISO 17442) | https://www.gleif.org/en/about-lei/introducing-the-legal-entity-identifier-lei |
| VIES (EU VAT validation) | https://ec.europa.eu/taxation_customs/vies/ |
| BIMI and Verified Mark Certificates | https://bimigroup.org |
| did:web and DID Configuration | https://w3c-ccg.github.io/did-method-web/ |
| SCITT and transparency logs | https://www.rfc-editor.org/rfc/rfc9943.html |
| Digital Product Passport | https://uncefact.github.io/spec-untp/ |

### Verification

What produced this report, and where the same bytes are served.

```
Report fingerprint  0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc
Capture SHA-256     0x934255c77a2dcf93516c56cd17f3eb959788d3eb9a16690dd55c26d74f54692f
Analysis SHA-256    0x6d9750f540be7bf9417fc40d9d22888ba9519e412a56a3cd7377f0a633438b14
Rubric              0.3.0
Rubric SHA-256      0x5710a7d11733b7ca2ba68bc67ecd7b859eb79847e314ef8eedb4301d5f51ce51
Engine              lens@0.1.0+dev
Probe window        2026-10-05T20:28:31.521Z to 2026-10-05T20:28:34.987Z
```

| Item | Address |
|---|---|
| The report, as JSON | https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc.json |
| The rubric it was scored under | https://lens.integraledger.com/rubric/0.3.0.json |
| Everything the probe fetched | https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/manifest.json |
| Any single item | https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc/evidence/<sha256> |

The fingerprint is the SHA-256 of the report's JSON, byte for byte. Hash the download, never a view of it.

```
curl -s https://lens.integraledger.com/reports/0xb6bdb975718808a3612492045ef82b78cc053e81c7500a233a3c156f1b8809fc.json | shasum -a 256
```
