Skip to content

docs: reposition around undercollateralized lending for leverage - #64

Merged
OrestTa merged 5 commits into
mainfrom
credit-protocol-repositioning
Sep 23, 2026
Merged

OrestTa merged 5 commits into
mainfrom
credit-protocol-repositioning

Conversation

@OrestTa

@OrestTa OrestTa commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Why: docs.t1protocol.com has not been touched since January and still tells visitors that t1 is infrastructure for building composable appchains, while t1protocol.com — relaunched this month and linking straight here from its "Read the docs" button — says t1 is the permissionless credit protocol for DeFi.

What: this rewrites the docs around undercollateralized lending for leverage on anything, with programmable custody as the core mechanism, and demotes the rollup material to a clearly-labelled long-term network vision instead of deleting it.

What a reader gets now

The story the docs tell, start to finish: permissionless credit has never been possible on-chain because every existing answer charges for trust — overcollateralized lending makes capital sit idle, permissioned credit brings back KYC and loan agreements, custodial leverage makes you hand over your assets. t1's answer is a margin account whose private key lives in a TEE and is bound at creation to the lender's loan policy. The key signs a trade the policy permits and will not sign a withdrawal to the borrower. The borrower gets direction rights and never gets withdrawal rights, which is what makes the loan safe to undercollateralize.

The reason this reaches "anything" gets its own explanation, because it is the non-obvious part: a smart contract can only police its own execution environment, and Polymarket, Hyperliquid, and Lighter all run off-chain orderbooks. A key sits in front of the transaction rather than inside the destination, so one account and one policy work across on-chain venues, off-chain orderbooks, and other chains.

New pages

Page Covers
Programmable Custody The three steps, the signature gate with a worked signed/rejected pair, remote attestation, why a smart contract cannot do this
Margin Accounts What a loan policy contains, how cross-venue positions consolidate, the account lifecycle
Risk Engine and Liquidation Why the engine runs in the TEE, how a liquidation executes through the same gate, what a lender can verify, and the residual risk
Lending Pools What a lender sets, what they are and are not exposed to, why repayment is structural
Ecosystem amplifi and juiced
Offer Leverage on Your Venue For builders — what integrating involves, ending in a contact CTA
Provide Lending Liquidity For lenders — pool creation vs depositing, ending in a contact CTA

Rewritten or reframed

  • Introduction — rewritten around credit. The old appchain framing is gone.
  • TEE and Real-Time Proving — kept, reframed as the infrastructure the credit protocol runs on. RTP is now explained as what lets positions on separate venues resolve into one margin account with proven rather than reported state.
  • Network Architecture (was "Architecture") — content untouched, but retitled, moved to the bottom of Protocol Overview, and opened with a note saying it is the long-term decentralized network from the Vision Litepaper and that the credit protocol does not depend on it having shipped. The page URL is unchanged, so no inbound links break.
  • Glossary — gains programmable custody, private key encumbrance, encumbered key, margin account, loan policy, signature gate, lending pool, LTV, liquidation, and remote attestation. Sequencer and Executor now say they belong to the long-term network.
  • Research — all four existing articles stay as the earlier body of work; the framing paragraph now names credit as the current focus.
  • Docs homepage — the hero paragraph, all three top cards, and both card decks. "t1 Beta Portal" and "t1 Smart Contracts" become Programmable Custody and Ecosystem; the "RTP Intent Bridge" and "More products coming soon" cards become amplifi and juiced; the Cross-Chain Reads card is dropped, leaving Offer Leverage and Provide Liquidity. Worth a second opinion: this removes the homepage's only link to the contracts repo.

Nothing was deleted from the Integration section: xChainRead, ERC-7683, and Docker dApps are all still there, now presented as the primitives underneath the credit protocol rather than as the product.

UTM rows

Two off-site product links ship in this PR, both on the Ecosystem page, and both rows are already in the UTM sheet:

Tab Row source medium campaign content term
Amplifi UTM 67 t1-docs website t1docs-credit ecosystem-page 10x-polymarket
Juiced UTM 23 t1-docs website t1docs-credit ecosystem-page robinhood-chain

t1-docs is a new utm_source (the parallel of t1-landing), and t1docs-credit is a new campaign slug for this repositioning. Every other off-site link in the new pages is internal or points at Discord, so these two are the whole surface. The homepage's amplifi and juiced cards deliberately link to the Ecosystem page rather than out, so all product traffic from the docs is attributed through one place.

Two things to check

  1. The Discord invite changed. The docs carried nbvyXZHgke in two places (homepage card and config footer); the landing page ships qVEUA6jmGZ. I aligned the docs to the landing page's value, in the homepage, the footer, and the two new contact CTAs. Worth confirming that is the invite you want public.
  2. Two glossary links were already broken. Sequencer and Executor both pointed at /intro/resources#t1-litepaper, but the heading is "t1 Vision Litepaper", so the anchor never resolved. Fixed to #t1-vision-litepaper.

No API surface was invented: the builder and lender pages describe the model and end in a contact CTA, because there is no self-serve onboarding to document yet. Claims in the new pages were initially carried over from the landing page's shipped copy; see Review round 1 below for the ones that did not survive checking.

Verification

yarn lint clean (0 errors; the 6 warnings are pre-existing no-explicit-any). yarn build succeeds with no broken-link warnings. Rendering checked in a browser against the production build: sidebar ordering, both card decks, the markdown tables, the admonition, and the heading anchors the cross-links point at.

Plan

Read the docs and the landing page, confirm three scoping decisions, rewrite the intro and add the four credit pages, reframe TEE/RTP and subordinate the network architecture, add the ecosystem and two integration pages, update the glossary and homepage, register the UTM rows, verify by build and browser, open the PR for review.

User prompts

  1. "now add /Users/Orest/LocalDocuments/Repos/t1/docs to additional dirs as t1 lp docs and update those docs to reflect the new focus of t1 on 'undercollaterlised lending for leverage for anything' - ask my review before merging"

Three scoping questions were asked before any writing, and all three were answered with the recommended option: keep the rollup material but clearly subordinate it, keep all existing integration docs but reframe them, and write concepts plus "work with us" pages without inventing an API.


Review round 1

Both localhost review CLIs were unavailable — codex is past its usage limit until Sep 26 4:59 PM, and cursor-agent needs an interactive agent login. An independent adversarial review ran in their place, checking every claim in the new pages against the landing page copy and against the actual shipped code. It found real problems. Three were checkable and false:

Claim as written What the code says
amplifi and juiced "use the same margin accounts and the same risk engine", i.e. TEE-held keys amplifi/src/persistence/migrations/003_polymarket.sql:38 is owner_private_key VARCHAR(66) NOT NULL, -- TODO: encrypt this later, and there is no enclave code in src/
"The risk engine is open-source, so its behavior can be read" t1protocol/amplifi is private; the only public repo is amplifi-contracts, which holds pool contracts, not the risk engine
Interest terms are part of the loan policy and "immutable thereafter" amplifi-contracts/src/RateAdminLendingPool.sol:37 exposes setRateParams(...) to owner()/rateAdmin, and the curve is utilization-kinked

Each is now fixed: the ecosystem page no longer asserts a mechanism for the two shipped apps, the open-source claim is replaced with what attestation actually gives a lender, and interest is described as a pool parameter separate from the bound policy.

Also corrected in the same pass: two absolute guarantees no TEE deployment supports ("Nobody … can make it do otherwise", "not by compromising their own credentials"); "No legal exposure" and the KYC-obligation clause, both wider than the landing page's wording; a withdrawal-rights contradiction on the ecosystem page; the present-tense "t1 is a TEE-enabled cross-chain application infrastructure" opening of architecture.md, now scoped to "As a network"; a rtp.md bullet importing seven-day rollup-exit latency into pool repayment; an invented integration promise in leverage.md; the footer's Integration link, still pointing at the demoted xChainRead page; and three British spellings.

That last one left the landing page disagreeing with the docs, since its LEND.claims still read "Open-source risk engine". Closed by t1protocol/t1-landingpage#14, which removes it there too. amplifi-landingpage and juiced-landing-page carry no equivalent claim.

Verification (round 2)

yarn lint clean (0 errors, 6 pre-existing warnings). yarn build succeeds; the only warnings are the pre-existing onBrokenMarkdownLinks deprecation notices, no broken links. Link and anchor targets across all 25 docs pages were machine-checked, including #residual-risk, #loan-policy, #amplifi, #juiced, #the-loan-policy and /intro/resources#t1-vision-litepaper; all resolve.

Review round 2

Two changes from the author's review of the rendered pages:

  1. perpDEXs removed from the "venues no smart contract can reach" line on the homepage. Perpetual DEXs offer leverage natively, so naming them there was simply wrong. The line now reads "prediction markets and memecoins". The separate claim in programmable-custody.md — that a contract on another chain cannot inspect or unwind a position on an off-chain orderbook, Hyperliquid and Lighter included — is about enforcement reach rather than leverage availability, and stands.
  2. xChainRead pulled out of the two central integration surfaces. It was a co-equal third card on the docs homepage and a third H2 in the Integration overview, which put a developer primitive beside the two things the protocol is actually offering. The homepage deck is now Offer Leverage and Provide Liquidity; the overview leads with those two and points at xChainRead, ERC-7683 and Docker dApps in one trailing line. The pages themselves are untouched and still in the sidebar, and rtp.md still links xChainRead from its "Beyond credit" section, which is its natural home.

Review round 3

Removing the "these two apps run on TEE-held accounts" claim left the mechanism pages saying nothing about how far the architecture is actually deployed, which is its own kind of misleading. Rather than asserting a negative, the docs now state the status quo: some subsystems already run inside a TEE, and others are in the process of being moved into one, with the full TEE architecture as the long-term design.

A Rollout section at the bottom of Programmable Custody carries that, and links amplifi's terms of service as the authoritative account for the live products — §2.4 there covers the controlling keys specifically. The TEE page, the risk engine's "What lenders can verify" section, and the Ecosystem page all point at the note, so a reader who meets a present-tense claim on any of them is one click from where the rollout stands.

🤖 Generated with Claude Code

The docs site still described t1 as cross-chain appchain infrastructure,
while the relaunched landing page positions t1 as the permissionless
credit protocol for DeFi. This brings the docs in line with it.

New under Protocol Overview: Programmable Custody, Margin Accounts,
Risk Engine and Liquidation, and Lending Pools. Introduction rewritten
around permissionless credit; TEE and Real-Time Proving reframed as the
infrastructure the credit protocol runs on; Network Architecture kept
but retitled and labelled as the long-term network vision from the
litepaper. New Ecosystem page for amplifi and juiced, and two new
integration pages for venues and lenders. Glossary gains the credit
vocabulary and loses two stale litepaper anchors.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@netlify

netlify Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for t1docs ready!

Name Link
🔨 Latest commit a98db96
🔍 Latest deploy log https://app.netlify.com/projects/t1docs/deploys/6ab394d8c8111b000836dd70
😎 Deploy Preview https://deploy-preview-64--t1docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

OrestTa and others added 4 commits September 23, 2026 10:10
…verclaims

Perpetual DEXs offer leverage natively, so listing them as venues that
cannot get leverage without t1 was wrong. Removed from the homepage.

An adversarial review of the rest of the PR found claims the docs made
that the source material does not support, three of them checkable and
false:

- amplifi and juiced were described as running on the same TEE-held
  margin accounts and risk engine. amplifi keeps wallet keys in Postgres
  (003_polymarket.sql, owner_private_key, TODO: encrypt this later) and
  has no enclave code. The ecosystem page no longer asserts a mechanism
  for the two shipped apps.
- "The risk engine is open-source" invited a reader to go read code that
  is not public; t1protocol/amplifi is private. Replaced with what
  attestation actually gives a lender.
- Interest was listed inside the immutable loan policy. The shipped
  RateAdminLendingPool exposes setRateParams to owner and rateAdmin, and
  the curve is utilization-kinked, so the rate moves by design. Interest
  is now a pool parameter, separate from the bound policy.

Also softened two absolute guarantees no TEE deployment supports,
narrowed the legal and KYC claims back to what the landing page says,
fixed a withdrawal-rights contradiction on the ecosystem page, scoped
the present-tense rollup definition in architecture.md, dropped a
rollup-exit latency bullet from rtp.md that does not apply to pool
repayment, removed an invented integration promise, repointed the footer
Integration link at the new overview, and corrected three British
spellings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Cross-Chain Reads sat as a co-equal third card on the docs homepage and
as a third H2 in the Integration overview, which put a developer
primitive next to the two things the credit protocol is actually selling.
The homepage deck is now Offer Leverage and Provide Liquidity only, and
the overview leads with those two and points at xChainRead, ERC-7683 and
Docker dApps in one trailing line instead.

The pages themselves are untouched and still in the sidebar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The previous commit removed the claim that the two shipped apps run on
TEE-held margin accounts, which left the mechanism pages silent about
how far the architecture is actually deployed. Rather than asserting a
negative, this states the direction the way amplifi's terms of service
already do: controlling keys are migrating into TEEs and in certain
environments are already held that way, with the full TEE architecture
across every environment as the long-term design.

A Rollout section at the bottom of programmable-custody.md carries it,
linking the terms as the authoritative account of where the migration
stands. The risk engine's verifiability section and the ecosystem page
point at it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The Rollout note described the migration in terms of controlling keys
and environments, which is how amplifi's terms of service put it. The
actual status quo is broader: some subsystems already run inside a TEE
and others are in the process of being moved into one. Says that
instead, and points the TEE page at the same note, since it lists four
uses in the present tense.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@OrestTa
OrestTa merged commit be4b22d into main Sep 23, 2026
7 checks passed
@OrestTa
OrestTa deleted the credit-protocol-repositioning branch September 23, 2026 09:03
OrestTa added a commit that referenced this pull request Sep 23, 2026
All t1 Discord links now use https://discord.gg/efGTM9q54s: the homepage
community card, the config footer, and the contact CTAs on the two
integration pages.

Follow-up to #64, which merged before this landed.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant