---
subject: https://integralens.store
requested: https://integralens.store/
stages: [Discoverable, Agreeable]
ceiling: [Discoverable, Agreeable]
rubric: 0.3.0
rubric_sha256: 0x5710a7d11733b7ca2ba68bc67ecd7b859eb79847e314ef8eedb4301d5f51ce51
probed: 2026-10-03T23:41:25.836Z
engine: lens@0.1.0+dev
fingerprint: 0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40
report_url: https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40.json
---

# integralens.store

**Agreeable** · Checked 3 Oct 2026, 23:41 UTC

AI agents can know who sells what, for how much, and on what terms, but find no checkout they can complete without a browser.

| Stage | Needed checks |
|---|---|
| **Discoverable** ✓ Reached | `✓✓` All 2 needed checks pass |
| **Agreeable** ✓ Reached | `✓✓✓✓✓✓✓✓✓` All 9 needed checks pass |
| **Transactable** ● Next | `✕◌` 0 of 2 needed checks pass |
| **Provable** ○ Not yet | `✕◌✕` 0 of 3 needed checks pass |

## Next: Transactable

2 checks to go · 1 can start now

| # | Fix | Owner · time |
|---|---|---|
| 1 | [Order links AI agents can build](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R2.2#fix) | Developer · Weeks |

[See the whole plan · 11 fixes](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/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** `✓✕` | 1 of 2 pass |  |
| A product list AI agents can download | ✓ Passed |  |
| An agent interface that answers product searches | ✕ To fix · Developer · Weeks | We didn't find an agent interface on your site that lists products with prices. |

### 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 |
|---|---|---|
| **Agreement record** `✕◌` | 0 of 2 pass |  |
| A checkable record of each agreement | ✕ To fix · CTO · Weeks | We didn't find payments linked to a checkable record of what was agreed. |
| The terms inside each agreement | ◌ Waiting |  |
| **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 |  |

### 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 · Next

**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 · 0 of 2 pass

| Check | Status | What Lens found |
|---|---|---|
| **Purchase** `✕◌┃◌` | 0 of 2 pass |  |
| Order links AI agents can build | ✕ To fix · Developer · Weeks | We couldn't find a way for AI agents to start an order without a browser. |
| A checkout for AI agents | ◌ Waiting |  |

### Beyond the minimum

Checks this stage grades but does not require.

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

### 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 · Not yet

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

It also needs Transactable.

### Findings · 0 of 3 pass

| Check | Status | What Lens found |
|---|---|---|
| **Agreement record** `✕◌` | 0 of 2 pass |  |
| A checkable record of each agreement | ✕ To fix · CTO · Weeks | We didn't find payments linked to a checkable record of what was agreed. |
| The terms inside each agreement | ◌ Waiting |  |
| **Binding** `✕┃◌–` | 0 of 1 pass |  |
| The agreement inside the payment | ✕ To fix · CTO · Weeks | We didn't find payments whose buyer approval carries the agreement record's fingerprint. |

### Beyond the minimum

Checks this stage grades but does not require.

| Check | Status | What Lens found |
|---|---|---|
| **Binding** `◌–` | 0 of 2 pass |  |
| A proof anyone can check | ◌ Waiting |  |
| Agreements proven on a public ledger | – Not checked |  |
| **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 |  |

## The plan · 11 fixes

### Reach Transactable · 2 fixes

| # | Fix | Owner | Typical time | After |
|---|---|---|---|---|
| 1 | [Order links AI agents can build](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R2.2#fix) | Developer | Weeks |  |
| 2 | [A checkout for AI agents](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R2.3#fix) | Developer | Weeks | after 1 |

### Reach Provable · 3 fixes

| # | Fix | Owner | Typical time | After |
|---|---|---|---|---|
| 3 | [A checkable record of each agreement](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R10.2#fix) | CTO | Weeks |  |
| 4 | [The terms inside each agreement](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R10.3#fix) | Developer | Weeks | after 3 |
| 5 | [The agreement inside the payment](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R6.2#fix) | CTO | Weeks | after 4 |

### Go further · 6 fixes

No stage needs these.

| # | Fix | Owner | Typical time | After |
|---|---|---|---|---|
| 6 | [An agent interface that answers product searches](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R1.4#fix) | Developer | Weeks |  |
| 7 | [A way for AI agents to pay](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R2.4#fix) | Finance | Weeks | after 2 |
| 8 | [A proof anyone can check](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R6.3#fix) | CTO | Weeks | after 5 |
| 9 | [Signed product records](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R8.4#fix) | Outside vendor | Weeks |  |
| 10 | [A registered company behind the site](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R7.3#fix) | Legal | Weeks to months |  |
| 11 | [Verified by an independent party](https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/checks/R7.4#fix) | Marketing | Weeks to months | after 10 |

### By owner

| Owner | Fixes |
|---|---|
| Developer | 1, 2, 4, 6 |
| CTO | 3, 5, 8 |
| Finance | 7 |
| Outside vendor | 9 |
| Legal | 10 |
| Marketing | 11 |

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 | R2.2 | Order links AI agents can build | Offer an agent commerce protocol (R2.3). Cart links lead there in any case. *How Lens re-checks it:* A cart link an agent can build from a catalog product, your UCP profile's permalink capability, or an agent checkout. |
| 2 | R2.3 | A checkout for AI agents | Publish the UCP checkout capability, or ACP's discovery document. *How Lens re-checks it:* Your UCP profile declares checkout and its MCP tool list advertises all five checkout tools, or you publish ACP's discovery document. |
| 3 | R10.2 | A checkable record of each agreement | Assemble an agreement record for each transaction and advertise its hash. Tools for this: the @integraledger/lcp package or the Integra appliance. *How Lens re-checks it:* A payment challenge carries the agreement record's hash and address, and the record served there matches it. |
| 4 | R10.3 | The terms inside each agreement | Write the published terms' digest into every agreement record. *How Lens re-checks it:* The agreement record contains your published terms' hash. |
| 5 | R6.2 | The agreement inside the payment | Take payment through a method where the buyer's signature covers the agreement record's hash. *How Lens re-checks it:* The buyer's approval of the payment covers the agreement record's hash. |
| 6 | R1.4 | An agent interface that answers product searches | Publish a UCP business profile with the catalog capability. Shopify stores have one by default. *How Lens re-checks it:* An agent interface, such as your UCP profile, answers a catalog query with a product, or an OpenAPI document declares paid operations. |
| 7 | R2.4 | A way for AI agents to pay | Accept x402, MPP or L402 payments, or offer AP2 mandates or an agent-usable payment handler through UCP. *How Lens re-checks it:* At least one payment challenge or declaration built for agents, such as x402 or MPP. |
| 8 | R6.3 | A proof anyone can check | Take payment through a method that settles in public, so anyone can check the hash it carries. *How Lens re-checks it:* Your payment uses a placement whose pattern lets anyone check the binding from public data alone. |
| 9 | 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. |
| 10 | 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. |
| 11 | 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 | 3 of 4 |  |
| R2 | Purchase | 1 of 4 |  |
| R3 | Access | 2 of 2 |  |
| R4 | Terms | 8 of 8 |  |
| R6 | Binding | 1 of 4 |  |
| R7 | Seller | 2 of 4 |  |
| R8 | Product | 3 of 5 |  |
| R9 | Price | 5 of 5 |  |
| R10 | Agreement record | 1 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 | `not_met` · To fix | No agent interface answered a catalog query: the site publishes no UCP business profile, and no other agent interface lists its products. | anon · cf-worker |
| R2.2 | Order links AI agents can build | `not_met` · To fix | The platform could not be identified, so no documented cart link applies. | anon · cf-worker |
| R2.3 | A checkout for AI agents | `not_met` · Waiting | The site offers no agent protocol path to checkout: no UCP profile declaring checkout, and no public ACP discovery document. | anon · cf-worker |
| R2.4 | A way for AI agents to pay | `not_met` · Waiting | Lens met no payment method built for agents: no well-formed x402, MPP, L402 or A402 challenge, no paid OpenAPI operation, no AP2 declaration or A2A payment extension, and no UCP payment handler that issues a credential an agent can use. | lens, 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 (480 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 2, 2026". | anon · cf-worker |
| R4.4 | Versioned terms | `met` · Passed | The terms state their version: "Version 1.0". | anon · cf-worker |
| R4.5 | Terms that stay the same | `met` · Passed | Two fetches of the terms returned identical bytes (0xb49f89445cbe68ed7b1dce2b10cef8bc5c749c8683b4816bf1ceb1aac93d6adf). | 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 | `not_met` · To fix | No agreement record passes the buyer gate (R10.2): No payment challenge Lens met declares an agreement record's hash. | anon · cf-worker |
| R6.3 | A proof anyone can check | `not_met` · Waiting | The buyer's approval does not carry H (R6.2): No agreement record passes the buyer gate (R10.2): No payment challenge Lens met declares an agreement record's hash. | 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 Logo Tee (identifier https://integralens.store/products/lcp-tee): the identifier is on the seller's domain and is the product page Lens read, which answered HTTP 200. Integra Lens Tee (identifier https://integralens.store/products/integra-lens-tee): 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 | `not_met` · To fix | No payment challenge Lens met declares an agreement record's hash. | anon · cf-worker |
| R10.3 | The terms inside each agreement | `not_met` · Waiting | Same reason as R6.2. | 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/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/evidence/<sha256>
```

```
0x43b3119732886e8a977345ebe7b024b98a5b56fcc6f93f510ba6a2605f1db053  R1.2 R7.2 R8.2 R8.3 R8.4 R9.2 R9.3 R9.4 R9.5
0x43ad8a4aa482a78761c95658fb5b377cfa6d3e06c42ff440217267665a00bce8  R1.3 R2.2 R8.2 R8.3
0x6f98c6f751981f94fdde8bdbb9d809a7e1cf82416e1124a96175a5dfa29c2e08  R1.4 R2.3 R2.4 R7.3
0x6a6376d9d0053b02d621821173d75d7cd38171ec18f54951a21908f6e901851a  R2.2 R2.4 R3.2 R6.2 R6.3 R7.3 R10.2 R10.3
0x7ddbdf6dddf7ec471b6a2e1e6a41925059763633bc341c57adc6f7c8dfd8b40b  R2.2
0xfbff22b1ea58ee2159b6080c912846a1c64d96c8bef279d2f6bfd3fb5c386dfa  R2.3
0xad2e571ba90b6ea6e429f0eaaf55025837a7ec560b09f1029538c57382dbef98  R2.4
0xd6a8bc266c5b2bbe2fd01d7d4152a685385067de6cb31afe91b621eec9d7bf13  R3.2 R4.7 R4.8
0xe53fb68286125bf637b5c55faeae06f93a40c1fb6107a24ab2abae33d5d6ea2f  R4.2 R4.3 R4.4 R4.5 R4.6 R4.7 R4.8
0x0d70d522dfa3628aa093e4518582f64e64a252e6e46535cfe58bd8b2f6a36fa6  R4.5 R4.8
0xdbb40d76d3c08e303374d78e2542521385b85c986979b3cc8cf649ba17fd8c3d  R4.7
0x67b4d704ee43d15f21ee280323de755b4c2cee497aa4f9ff8057187bdb26a322  R7.3 R7.4
0x6601221eaff2104718dadc5dd7fca4b08dfbf94749af0b679d831b04d7d92c6d  R7.4
0x8693c0c87045b9cac431aa6c93669b163b564212beb3960c70d4ac9884874e03  R7.4
0x2614a837d2d21d7cc737d37f51155a0867033bdb32701dff758749f67803a707  R8.2 R8.3
0x7ee49532a4677f5f1b735e2731b0037b604f97b668eb3f5a9faed8976aa35e44  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. Within the ceiling: Discoverable, Agreeable.

| Status | Recorded | Count | What it means |
|---|---|---|---|
| ✓ Passed | `met` | 17 | The evidence Lens captured satisfies the check. |
| ✕ To fix | `not_met` | 6 | The evidence does not satisfy the check. It is a fix in the plan. |
| ◌ Waiting | `not_met` | 5 | 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 | 13 | A check passed by this route. |
| Seen | 1 | Lens found this route's surface, and it met no check. |
| Absent | 53 | 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 2672 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 | `0xb49f89445cbe68ed7b1dce2b10cef8bc5c749c8683b4816bf1ceb1aac93d6adf` |
| Members declared | `atrHash`, `contact`, `terms`, `termsFormat` |
| Dispute clause identifier | None declared |
| Placements of the agreement record's hash | No payment request carried one. |
| 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 | No check cites it |
| 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 2 checks |

### 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 not signed | The site offers no agent payment path (R2.4), so there is no signed authorization. | 2 |
| 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         0x4ce78a9dda96a5dd35cadf0cd1de8750310eec4b5cf5fd4623162530ddb5a5fa
access.verified-agent         0x952e2a4a6efdbc289d183b81c60c90b8cc5bcbce7c72e74eb5ef24cee02073f3
access.verified-agent         0x0a19e65ad87363c9472030b6091717a065dd9d9a9902b378fb99363b12f4ca7a
access.verified-agent         0xe00a7b641d6761632f96ffda85dc07f396cec7bd50013205b784c503f6aa38a0
payment.signed-authorisation  0xad2e571ba90b6ea6e429f0eaaf55025837a7ec560b09f1029538c57382dbef98
payment.signed-authorisation  0x6a6376d9d0053b02d621821173d75d7cd38171ec18f54951a21908f6e901851a
seller.keys                   0x67b4d704ee43d15f21ee280323de755b4c2cee497aa4f9ff8057187bdb26a322
seller.keys                   0x8693c0c87045b9cac431aa6c93669b163b564212beb3960c70d4ac9884874e03
seller.keys                   0x4008e0b13eeae682b15b5118e6e64d2c43187e96707e0606e23dbb0e0140422b
seller.keys                   0xcb856859aae245df8fdf26ee5e2d14d75b53d2a554bc879d1efdb32da67dac5f
seller.keys                   0x7347c25eaad1bee5cac13d89c40ff8678164edb7e92d138868f78965f2fe0a0a
seller.keys                   0xa65fa9a4a1338dd4d8ab416ddf324c4519d2058721fd8d3fd691397a2257d0df
terms.privacy-policy          0x6a6376d9d0053b02d621821173d75d7cd38171ec18f54951a21908f6e901851a
```

**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 |
| `payment` | `skip` | the site declares no payable resource in its agent documents, and no facilitator's listing names one |
| `atr` | `skip` | no payment challenge advertised an ATR link |
| `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  0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40
Capture SHA-256     0xd3ee4207d74f1ef0c2d0d5f78c32303397e01581a279ec3361d337161aaffc80
Analysis SHA-256    0x7608a7fb384102e4d5990de33664dc429975c3ebeb73e073fee628980ed08b2b
Rubric              0.3.0
Rubric SHA-256      0x5710a7d11733b7ca2ba68bc67ecd7b859eb79847e314ef8eedb4301d5f51ce51
Engine              lens@0.1.0+dev
Probe window        2026-10-03T23:41:25.836Z to 2026-10-03T23:41:28.447Z
```

| Item | Address |
|---|---|
| The report, as JSON | https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40.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/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/manifest.json |
| Any single item | https://lens.integraledger.com/reports/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40/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/0x61fbf7c583dbb8ef0d49d3b709ed07c725c84b12c7d4eac0f1b4cfd50c7cac40.json | shasum -a 256
```
