🌐 US-Proxy
>; the forty bespoke doors don't, so a body-keyed rule silently fails on every one of them (that flashed the hamburger white on hover, 2026-07-28). Guarded by a test. */ .estate-nav[data-s="dark"]{background:#0A1411;border-bottom-color:#20342B;color:#DCE7E0} .estate-nav[data-s="dark"] .lockup .stop{color:#35B183} .estate-nav[data-s="dark"] .estate-layers a:hover,.estate-nav[data-s="dark"] .estate-layers .sl-here{color:#35B183} .estate-nav[data-s="dark"] .estate-layers .sl-held{color:#8BA396} .estate-nav[data-s="dark"] .estate-nav-body{background:#0A1411;border-bottom-color:#20342B} .estate-nav[data-s="dark"] .estate-layers a{border-top-color:#20342B} .estate-nav[data-s="dark"] .nav-cta{color:#DCE7E0!important;border-color:#20342B} .estate-nav[data-s="dark"] .nav-cta:hover{border-color:#DCE7E0} .estate-nav[data-s="dark"] .nav-partner{background:#35B183;color:#0A1411} .estate-nav[data-s="dark"] .nav-partner:hover{filter:brightness(1.06);color:#0A1411} .estate-nav[data-s="dark"] .nav-btn:hover{background:rgba(255,255,255,.06)} .nav-state:checked ~ .estate-nav .i-menu{opacity:0;transform:rotate(90deg) scale(.7)} .nav-state:checked ~ .estate-nav .i-close{opacity:1;transform:none} .nav-state:focus-visible ~ .estate-nav .nav-btn{outline:2px solid var(--accent,var(--green,#0E6B4A));outline-offset:2px} @media(min-width:861px){ .estate-nav-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px} .estate-nav-row .lockup{grid-column:1;justify-self:start} .estate-nav-body{display:contents} .estate-layers{grid-column:2;justify-self:center;flex-wrap:nowrap;column-gap:22px} /* The right slot: field and/or CTA share one grid cell as a flex row, so if a surface ever passes BOTH they sit side by side instead of overlapping. */ .estate-nav-end{grid-column:3;justify-self:end;display:flex;align-items:center;gap:12px} .estate-nav-end .vin-field--bar{width:260px;max-width:100%} } @media(max-width:860px){ .estate-nav-row .nav-btn{display:inline-flex} /* EVERY SHELL TOKEN IN THIS SHEET NAMES BOTH VOCABULARIES. --bg / --rule / --accent are the shared SHELL's semantic slots (styles.ts). The forty bespoke doors render their :root from rootCss(), which emits --paper / --line / --green and has NEVER carried the shell's names. So on every bespoke door the bar and the open menu both resolved to rgba(0,0,0,0) — a transparent header with the page scrolling through it, and a transparent dropdown. It looked correct on the shell and broke on forty doors, which is why a shell-only check passed it. Fallback chain, not a rename: shell slot, then door token, then literal. */ /* THE DROPDOWN MUST NAME BOTH TOKEN VOCABULARIES. --bg / --rule are the shared SHELL's semantic slots (styles.ts). The forty bespoke doors render their :root from rootCss(), which emits --paper and --line and has never carried --bg or --rule. So on every bespoke door the open menu resolved to rgba(0,0,0,0) — a transparent panel with the page scrolling behind it. It looked right on the shell and broke everywhere else, which is why a shell-only check would have passed it. Fallback chain, not a rename: shell slot, then door token, then literal. */ .estate-nav-body{position:absolute;top:100%;left:0;right:0;z-index:50;flex-direction:column;align-items:stretch;gap:14px;background:var(--bg,var(--paper,#FFFFFF));border-bottom:1px solid var(--rule,var(--line,#E4E8E5));padding:16px 24px 20px;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .24s ease,transform .28s cubic-bezier(.2,.7,.3,1)} /* .estate-nav-end unwraps here so field/CTA keep their own dropdown slots (field on top, CTA lower) instead of grouping as they do on desktop. */ .estate-nav-end{display:contents} .estate-nav-body .vin-field--bar{order:0} .estate-layers{order:1;flex-direction:column;align-items:stretch;column-gap:0;row-gap:0;font-size:1.05rem} .estate-layers a,.estate-layers .sl-here,.estate-layers .sl-held{display:flex;align-items:center;min-height:54px;padding:0;border-top:1px solid var(--rule,var(--line,#E4E8E5))} .estate-nav-body .nav-cta{order:2;justify-content:center;margin-top:4px} .estate-nav-body .nav-partner{order:3;justify-content:center;margin-top:4px;width:100%;min-height:48px;font-size:1rem;font-weight:700;font-family:var(--sans-display)} .nav-state:checked ~ .estate-nav .estate-nav-body{opacity:1;transform:none;pointer-events:auto} } /* The shared menu-toggle machinery EstateNav renders: the sr-only checkbox, the hamburger button + its menu/close icon, the scrim, and the scroll lock. The nav STRUCTURE (bar grid, layers, CTA, mobile dropdown) lives in estateNavCss above; the old .nav-inner / .nav-links / .nav-panel / .np-* sheet was retired with DoorNav (2026-07-27). Icon-swap + focus are scoped to .estate-nav there. */ .sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0} .nav-state{position:fixed;top:0;left:0} .nav-btn{display:none;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-12px;border-radius:8px;cursor:pointer;position:relative;z-index:2;color:inherit} .nav-btn:hover{background:#F5F7F6} .nav-ico,.nav-ico svg,.nav-ico path,.nav-ico span{pointer-events:none} .nav-ico{position:relative;width:24px;height:24px;display:block} .nav-ico > span{position:absolute;inset:0;display:block;width:24px;height:24px;transition:opacity .22s ease,transform .28s cubic-bezier(.2,.7,.3,1)} .nav-ico svg{width:24px;height:24px;display:block} .i-close{opacity:0;transform:rotate(-90deg) scale(.7)} .nav-scrim{display:none;position:fixed;inset:0;z-index:40;background:rgba(11,18,15,.28);opacity:0;pointer-events:none;transition:opacity .26s ease} .nav-state:checked ~ .nav-scrim{opacity:1;pointer-events:auto} /* THE SCROLL LOCK — clip, never hidden. overflow:clip is not a scroll container, so nothing clamps the offset to 0; both Chromium and WebKit hold position. */ body:has(.nav-state:checked){overflow:clip} .nav-scrim{overscroll-behavior:contain} .nav-state:checked ~ .nav-scrim{touch-action:none} @media(max-width:860px){ .nav-scrim{display:block} } /* ---- ranks: the ground ------------------------------------------------ */ .price,.price-col,.price-block{ --p-ink:#0B120F;--p-soft:#3C4642;--p-muted:#66716B; --p-posted:#0E6B4A;--p-rule:#E4E8E5; } [data-ground="dark"] .price,[data-ground="dark"] .price-col,[data-ground="dark"] .price-block, [data-s="dark"] .price,[data-s="dark"] .price-col,[data-s="dark"] .price-block, [data-surface="dark"] .price,[data-surface="dark"] .price-col,[data-surface="dark"] .price-block, .dark .price,.dark .price-col,.dark .price-block{ --p-ink:#F2F7F4;--p-soft:#DCE7E0;--p-muted:#8BA396; --p-posted:#35B183;--p-rule:#20342B; } /* ---- ranks: the type -------------------------------------------------- */ .price-eyebrow{ display:block;font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.68rem;font-weight:600; letter-spacing:.22em;text-transform:uppercase;color:var(--p-muted,#66716B); } .price-lead{ display:block;font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size:clamp(1.5rem,1.05rem + 1.35vw,1.875rem); font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--p-ink,#0B120F); font-variant-numeric:tabular-nums;white-space:nowrap; } /* Posted takes the green (tokens.ts: the trust signal is the stop, posted prices, primary actions). Quoted never does — a quote is not certified. */ .price-lead[data-price="posted"]{color:var(--p-posted,#0E6B4A)} .price-lead[data-price="quoted"]{color:var(--p-ink,#0B120F)} .price-sum{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:1.0625rem;font-weight:600; letter-spacing:-.01em;color:var(--p-ink,#0B120F);text-align:right;white-space:nowrap; font-variant-numeric:tabular-nums; } .price-line{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.875rem;font-weight:500; color:var(--p-ink,#0B120F);text-align:right;white-space:nowrap; font-variant-numeric:tabular-nums; } .price-qual{ display:block;font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.8125rem;font-weight:400; line-height:1.5;color:var(--p-soft,#3C4642);font-variant-numeric:tabular-nums; } .price-qual + .price-qual{margin-top:4px} /* An anchor is a Qualifier that names its source and its date. It is never a was/now: attestation has no before-price, so the strike is refused here rather than trusted not to be authored. */ .price-anchor{color:var(--p-muted,#66716B)} .price-lead,.price-sum,.price-line,.price-qual,.price-anchor,.price-slot{text-decoration:none} .price-lead s,.price-sum s,.price-line s,.price-qual s,.price-anchor s, .price-lead del,.price-qual del,.price-anchor del{text-decoration:none;font-style:normal} /* The slot inherits the rank it stands in for and is capped at Line. It never takes weight >=600, never green, never full ink. */ .price-slot{color:var(--p-muted,#66716B);font-weight:400;letter-spacing:.04em} .price-sum.price-slot{font-size:.875rem;font-weight:400} .price-lead.price-slot{font-size:1.0625rem;font-weight:400;letter-spacing:.04em} /* ---- the column: ONE shrink-wrapped box (THE ALIGNMENT LAW, §11/§12.5) -- */ .price-col{ display:grid;grid-template-columns:minmax(0,1fr) max-content; gap:0 16px;align-items:baseline;font-variant-numeric:tabular-nums; } .price-col > .price-line,.price-col > .price-sum{grid-column:2} .price-col > .price-rule{grid-column:1 / -1;height:1px;background:var(--p-rule,#E4E8E5);margin:8px 0} /* A price that is also a link is still an address: 44px target, no colour hand-off to the link rule. */ a.price-lead,a.price-sum,a.price-line{display:inline-block;padding:12px 0;margin:-12px 0} a.price-lead:hover,a.price-sum:hover,a.price-line:hover{text-decoration:underline;text-underline-offset:4px} /* ======================================================================= */ /* ADOPTION — the hooks the shipped landings already emit, resolved onto */ /* the five ranks. Every selector below was measured on the served artifact */ /* on 2026-07-26; all of them sit on a white or paper-2 ground, so the ink */ /* values are safe without a per-door ground test. */ /* ======================================================================= */ /* Line: 12 distinct renderings across 126 figures, collapsed to one. */ .stk-rows .amt,.ord-rows .amt,.order-rows .amt,.order-rows .o-amt,.pay-rows .amt, .venue-rows .v-price,.comp-rows .c-price:not(.h),.result-rows .r-price, .option-rows .o-pay{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.875rem;font-weight:500; color:#0B120F;text-align:right;white-space:nowrap; font-variant-numeric:tabular-nums; } /* Sum: 21 of 22 shipped renderings already agreed at 17px/600/ink. The outlier is sticker's Monroney facsimile (.msrp-*), which is a reproduction of a printed label and keeps its own smaller scale on purpose — promoting it made an unpriced total the loudest money on that page, measured, so it is excluded here rather than argued with. */ .stk-total .amt,.ord-total .amt,.order-total .amt,.order-total .o-amt, .pay-out .amt{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:1.0625rem;font-weight:600; letter-spacing:-.01em;color:#0B120F;white-space:nowrap; font-variant-numeric:tabular-nums; } /* Lead: the door's own posted price. vhr.vin's posted block is the estate's only shipped instance where the real price stands alone in its own element; the peer SKU beneath it takes the Sum rank, per §12.2. */ .posted-rows li:first-child .amt{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:clamp(1.5rem,1.05rem + 1.35vw,1.875rem); font-weight:600;letter-spacing:-.02em;line-height:1.05;color:#0E6B4A; font-variant-numeric:tabular-nums; } .posted-rows li + li .amt{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:1.0625rem;font-weight:600; letter-spacing:-.01em;color:#0B120F;font-variant-numeric:tabular-nums; } /* Qualifier: the TTL/anchor line under a posted price, and the ladder rung's own explanatory clause. 4.9:1 muted -> 9.8:1 ink-soft. */ .posted-rows .amt small,.rung-what,.rung-text{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.8125rem;font-weight:400; line-height:1.5;color:#3C4642;font-variant-numeric:tabular-nums; } .posted-rows .amt small{display:block;margin-top:4px} /* The price pair inside a proof card is two peer SKUs: Sum rank, one ink. (The same two prices inside .close-row are label text on a button — one of them aria-disabled — so they are left to the door: restyling them would dress a disabled control as an active one.) */ .proof-prices .pp b{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:1.0625rem;font-weight:600; letter-spacing:-.01em;color:#0B120F;font-variant-numeric:tabular-nums; } /* Slot: figures a landing shows the shape of but does not post — the five value bands, the register slot lines. They keep their size, and their place in the column, and stop impersonating a price. (sticker's option prices are withheld by a ratified rule, not merely unpriced; they already render at the slot's weight and ink and are left where they are — sizing them up would draw the eye to a figure the door is deliberately not showing.) */ .st-slot,.r-slots,.m-slots{ font-weight:400;color:#66716B;letter-spacing:.04em; font-variant-numeric:tabular-nums; } /* The door's own posted fee sentence keeps the posted green (it is a posted price) and gains the Qualifier's size and weight. */ .sheet-fee,.order-fee,.zero-fee{ font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.8125rem;font-weight:500; color:#0E6B4A; } /* Tabular on every money column box, not on each figure — insurance against a face swap. Measured cost today: 0.00px (Fira Code digit-width delta 0). */ .stk-rows,.ord-rows,.order-rows,.pay-rows,.opt-rows,.venue-rows,.comp-rows, .result-rows,.option-rows,.posted-rows,.pay-grid,.doc-msrp,.proof-prices, .close-row{font-variant-numeric:tabular-nums} /* Money is never struck through, anywhere, however it was authored. */ .stk-rows s,.ord-rows s,.order-rows s,.pay-rows s,.posted-rows s,.opt-rows s, .comp-rows s,.venue-rows s,.result-rows s,.option-rows s{text-decoration:none} /* Below 414px the label column and the money column compete for the same ~290px. The Line rank steps down one notch so the figure never buys its width out of the line name — measured on insure.vin, whose .what label was clipping 3px further at 375px before this step existed. Sum:Line holds at 17/13 = 1.31x, still inside §12.2. */ @media(max-width:414px){ .stk-rows .amt,.ord-rows .amt,.order-rows .amt,.order-rows .o-amt,.pay-rows .amt, .venue-rows .v-price,.comp-rows .c-price:not(.h),.result-rows .r-price, .option-rows .o-pay{font-size:.8125rem} } @media(max-width:560px){ .posted-rows li:first-child .amt{text-align:left} } .next-rows a,.product-rows a,.rec-rows a,.rail-rows a,.dir-rows a,.grammar-rows a{ /* Square, not rounded (founder ruling 2026-08-04): the row hover/focus fill sits flush. One shared value so no door drifts back to a radius. */ padding-left:12px;padding-right:12px;border-radius:0; } @media(max-width:700px){ .next-rows .addr,.product-rows .addr,.rec-rows .addr,.rail-rows .addr,.dir-rows .addr,.grammar-rows .addr{grid-column:1;grid-row:1} .next-rows .arrow,.product-rows .arrow,.rec-rows .arrow,.rail-rows .arrow,.dir-rows .arrow,.grammar-rows .arrow{grid-column:2;grid-row:1;align-self:center} .next-rows .desc,.product-rows .desc,.rec-rows .desc,.rail-rows .desc,.dir-rows .desc,.grammar-rows .desc{grid-column:1 / -1;grid-row:2} } /* THE AGENT BAND'S CODE SAMPLE — scrolls in its own box, never wraps. Founder ruling 2026-07-28, superseding the ≤860px pre-wrap fit that shipped here: code keeps its line shape at every width and the box scrolls horizontally inside itself (white-space:pre + overflow-x:auto). Every door also ships the same pair locally on .demo-pre; this shared rule enforces the ruling for any door whose local block goes missing — the apis.vin case, where the absent block let the raw pre push ~660px of page-level scroll at 320px. */ .demo-pre{white-space:pre;overflow-x:auto;overflow-wrap:normal} /* THE AGENT BAND SITS IN THE PAGE, not against the glass. The band is full-bleed by design — its rule and ground span the viewport — but its CONTENT belongs in the same measure as everything above it. Three treatments shipped across the estate: 20 doors padding:5.5rem max(28px,calc((100% - var(--wrap))/2)) 6rem correct 16 doors padding:5.5rem 0 6rem no padding at all 6 doors padding:5.5rem 28px 6rem 28px, no measure So on 22 of 40 doors "for the agent you send" ran to the window edge while the section above it stopped at the wrap. Only the horizontal padding is set here — each door keeps its own vertical rhythm, border and ground. The +28px is not a fudge. A normal section is .wrap — max-width:var(--wrap) AND 28px of padding inside it — so its CONTENT is var(--wrap) minus 56, not var(--wrap). Centring a full-bleed band on var(--wrap) alone therefore left the agent band 56px wider than everything above it and 28px further out on each side: 1040 against 984 at a 1440 viewport. Below the wrap both clamp to 28px, which is why this only ever showed on desktop. */ .agent{ padding-left:max(28px,calc((100% - var(--wrap))/2 + 28px)); padding-right:max(28px,calc((100% - var(--wrap))/2 + 28px)); } .estate-footer{background:#0A1411;color:#DCE7E0;border-top:1px solid #20342B} .estate-footer .wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px} .estate-footer .stop{color:#35B183} .estate-footer a:focus-visible{outline:2px solid #35B183;outline-offset:3px;border-radius:2px} .ef-ident{padding:3.2rem 0 2.4rem;display:flex;align-items:flex-start;justify-content:space-between;gap:20px 40px;flex-wrap:wrap} .ef-word{font-family:'Sora', -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif;font-weight:700;font-size:clamp(1.3rem,2.6vw,1.6rem);letter-spacing:-.02em;color:#F2F7F4;line-height:1} .ef-line{margin-top:.55rem;font-size:.88rem;color:#8BA396} .ef-auth{display:inline-flex;align-items:baseline;gap:12px;flex-wrap:wrap;text-decoration:none;border:1px solid #20342B;border-radius:12px;padding:12px 18px;transition:border-color .16s ease} .ef-auth:hover{border-color:#35B183} .ef-auth-addr{font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-weight:500;color:#35B183;font-size:.9rem} .ef-auth-what{color:#8BA396;font-size:.86rem} .ef-seam{border:0;border-top:1px solid #20342B} .ef-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2.6rem 40px;padding:3rem 0} .ef-pw{font-family:'Sora', -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif;font-weight:700;font-size:1rem;letter-spacing:-.01em;color:#F2F7F4;line-height:1.1} .ef-doors{list-style:none;display:flex;flex-direction:column;margin-top:.5rem} .ef-door{font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.8rem;font-weight:400;line-height:1.3;display:block;padding:3.5px 0;color:#8BA396;text-decoration:none;transition:color .13s ease} a.ef-door:hover{color:#35B183} .ef-held{color:#5E6E66} .ef-base{padding:1.9rem 0 3rem;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;font-size:.82rem;color:#8BA396} .ef-house{font-family:'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;font-size:.78rem;display:flex;gap:14px;flex-wrap:wrap;align-items:center} .ef-house .ef-door{display:inline;padding:0} .ef-sep{opacity:.45} @media(max-width:520px){ .estate-footer .ef-cols{grid-template-columns:repeat(2,1fr);gap:1.8rem 18px} .estate-footer .ef-door{font-size:.78rem} .estate-footer .ef-ident{flex-direction:column} .estate-footer .ef-auth{width:100%} }
title.vin

Read the title before the wire.

Read. Quote. Clear.

The record’s title line posts at the address — titling state, title type, brands where reported, the lien line — each fact with its source and timestamp beside it. The read is free. No account. The work a title needs quotes on request, state by state.

Hand this record to your agent: it reads the title line and walks the quote through the services counter, and you appear only where you’re load-bearing — sign where the state requires a signature.

VIN7MMVABDM3RN163785
  • Titling stateposts livethe state that holds the paper — the office the work files with
  • Title typeposts liveas the state reports it — stated, sourced, timestamped
  • Brandspost where reportedwhere reported — none is stated as a fact, never assumed
  • Lienstatus posts liveopen · released · none reported — the payoff that still reads open says so
  • Postedthe source · the timestampevery fact posts as value · source · timestamp

A line that is reported but not yet verified says so on the line — an open finding, stated, never hidden. Figures render live at the address; this page states structure, not prices.

The problem the paper discovers last.

A lien surfaces at signing. A brand surfaces at resale. The office queue starts after the money moved. Here the line reads first — free — and the counterparty sees this exact page.

  • Is the paper clean?title type and brands post from the record — value, source, timestamp
  • Is there a lien?the lien line posts — open, released, or none reported
  • Which state holds it?the titling state posts — the one office the work files with
  • Was the payoff recorded?paid off but still reading open is an open finding — stated on the line

Money moved against a title nobody read — that is the failure this line is posted against. Read it before the wire.

The work, ordered by the number.

Four jobs cover title work. Each quotes on request through the services counter — the state named first, the quote posted before anything files, the cleared title posted back to the record as evidence.

  • TransferA sale, a gift, an inheritance — the transfer files with the state.quote on request · state named first
  • Lien releasePaid off but still reading open — the release papers and files.quote on request · state named first
  • CorrectionA name, an odometer line, a brand recorded wrong — the correction files with the state.quote on request · state named first
  • DuplicateLost or destroyed — the duplicate orders from the titling state.quote on request · state named first
Order title work

not yet open · per-state DMV licensing and runner registration verified before title work fulfills (the gigs.expert route, specced not live)

Order actions render through the compliance gate: per-state DMV licensing and runner registration verify state by state before title work fulfills. Until a state clears, nothing on this page takes a paid order there — the row reads “not yet offered in that state” as a fact. The read is live today — free, no account.

services.vinthe transacting counter — quoted on request, tracked to done

Postedthe title line — free · every VIN, every visit · no account
The feeTitle work quotes on request, per job and per state — the quote posts before anything files, and no fee appears at filing that wasn’t on the quote.
AgentsThe same line as typed JSON at the same address, via Accept negotiation — tools at apis.vin/mcp.

One office visit.

Title and registration are one counter at the state — and two doors here, one chassis.

The title

this door — the paper

The title clears here: status read free from the record, the four jobs quoted on request, the cleared title posted back as evidence.

title.vin/7MMVABDM3RN163785

The plates

the co-peer — registration

Renewal, plates, and tags post at the peer door — the same office visit, read and worked on the same record.

registration.vinthe plates post there

Both transact as service orders through services.vin, on one record, settling on one invoice.

The title clears inside the one order.

A deal that moves money before the paper settles is the old order of operations. On this record the sequence is posted: the line reads first, the work rides the deal’s order, and settlement waits on the paper.

Questions with posted answers.

  • Can I order title work today?

    Not yet. Per-state DMV licensing and runner registration verify state by state before title work fulfills; the order action posts on this record as each state clears. The read is live today — paste a VIN above and the title line posts, free, no account.

  • Is the read free?

    Yes — the title line posts free at the address, every VIN, every visit, no account. The full posted history is a deeper read at vhr.vin — the free line comes first.

  • Which states does the work cover?

    The quote names the state first. Where a state’s fulfillment gate has not cleared, the row says so as a fact — nothing files there until it does.

  • The title reads wrong — now what?

    A name, an odometer line, a brand recorded wrong — the correction is one of the four jobs. It quotes on request with the state named first, and the corrected title posts back to the record as evidence.

  • Buying or selling — who orders the work?

    Either side. Buying, title work attaches to the deal at buy.vin; selling, the transfer is the close’s last step at offers.vin — either way it is one order on one record.

  • How does title.vin make money?

    The read is free. Title work is quoted, per job and per state, through the services counter — the quote posts before anything files, and no fee appears at filing that wasn’t on the quote.

The title is one face of the record.

The other addresses read the same seventeen characters.

know the car

the counter

do the deal

know the cost

If an agent clears the paper for you, it reads this same record: the posted line · the quote · the filing tracked to done is the receipt that survives being shown to you.

The third reader.

Humans read this page; agents read the same line, typed. Every fact on the title line — state, type, brands, lien — is a value with a source and a timestamp, at the same address: the page at title.vin/{VIN}, the JSON at the same address via Accept, the tools at apis.vin/mcp.

  • An agent reads the title line and walks the quote on its own account.b2a.vin
  • The one human step stays human: you sign where the state requires a signature — the agent walks everything else.b2h2a.vin
  • Every fact posts as value · source · timestamp — a reported-not-verified line says so
  • The title line reads free at the address; ordering obeys the same posted gate as this page
  • One MCP server for the whole platform: apis.vin/mcp
The line, as an agent reads itapis.vin/mcp
// resources/read · title_line
{
  "type": "vin.title.line",
  "vin": "7MMVABDM3RN163785",
  "state": <the titling state>,
  "title_type": <as the state reports it>,
  "brands": [ <each with source + timestamp> ],
  "lien": { "status": <open | released | none reported>,
            "posted": <RFC 3339 timestamp> },
  "work": [
    { "service": "transfer",
      "quote": <integer, USD cents — on request>,
      "gate": <per-state, attested> }
  ]
}

For the agent you send

The agent reads the same record you do. Same two routes, three representations — the numbers never differ between them.

motions: B2A · B2H2A

curl https://title.vin/ -H 'accept: text/markdown'        → the markdown twin of this page
curl https://title.vin/{VIN} -H 'accept: application/json' → the record as typed evidence objects
curl https://title.vin/{VIN} -H 'accept: text/markdown'    → the record's markdown twin

Machine surfaces on this host: /llms.txt · /icp.json · /.well-known/agents.json · one estate MCP server — apis.vin/mcp (every door a lens; tool results carry the door URL).

Attribution: X-Client-Type: html | md | json | mcp — read for agent-led demand attribution; it never changes the record.