Reframe Wallet-as-a-Service doc around the platform offering - #806
Open
lacrossehub wants to merge 1 commit into
Open
Reframe Wallet-as-a-Service doc around the platform offering#806lacrossehub wants to merge 1 commit into
lacrossehub wants to merge 1 commit into
Conversation
The page led with the 2-of-2 root quorum as the defining pattern of Wallet-as-a-Service. That's one configuration, not the offering: the distinguishing trait is owning the developer surface. Reframe the intro, "what makes this different," and the transaction flow around the baseline single-API-key model, and move co-signing into a new "Hardening your platform" section alongside IP allowlisting, captcha, MFA, least-privilege key scoping, and webhook monitoring. Collapse Implementation from five steps to three. The old Steps 1-3 split tenant mapping, the control model, and sub-org creation across two bullet lists that restated each other and the Architecture section above them. Fact corrections against the feature docs: - IP allowlisting applies to the parent org only; sub-org-authenticated requests (including platform transaction approvals) are not evaluated. Note the fail-closed footgun and correct the tier to Enterprise/Scale+. - Captcha enforcement is automatic only for react-wallet-kit v2.4.0+; platforms building on @turnkey/core must integrate Turnstile themselves. - MFA policies are per-user via CreateMfaPolicy with ordered steps; add the session and OAuth factors. - ACTIVITY_UPDATES covers parent plus all sub-orgs from one parent-owned endpoint. - Explain why export survives a 2-of-2 quorum: root actions bypass the policy engine, but an explicit policy lets a single root user act alone. Add a note that the baseline model is custodial, move the co-signing sequence diagram to the section it illustrates, and replace the broken /get-started/about-turnkey#activities anchor. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The WaaS page led with the 2-of-2 root quorum as the defining pattern of Wallet-as-a-Service. This reframes the page around that, and moves co-signing into a new Hardening your platform section.
Changes
Framing. Intro, "What makes Wallet-as-a-Service different," and the transaction authorization flow now describe the baseline model: your platform holds the sole API key, end users authenticate to your platform, your backend approves. Turnkey stays behind your SDK. Added a note that this baseline is custodial, pointing to co-signing and custody models for teams that need verifiable non-custody.
Hardening your platform (new). Six optional controls, ordered by how often they'd apply: end-user co-signing (2-of-2), IP allowlisting, captcha, MFA policies, least-privilege API key scoping, and webhook-based activity monitoring. Each gets a one-line "when to use" and a link to the feature doc.
Implementation: five steps → three. The old Steps 1–3 split tenant mapping, the control model, and sub-org creation across two bullet lists that largely restated each other and the Architecture section above them. Now: create a sub-org per end user (with the end-user authenticator, Delegated Access, and export policy as clearly optional additions), build your integration surface, wire it into your platform flow. The staged 1-of-2 → 2-of-2 setup moved to the co-signing section, where it belongs.
Fact corrections
Checked each hardening claim against the underlying feature docs:
@turnkey/react-wallet-kitv2.4.0+. Relevant here, since WaaS platforms typically build their own UI on@turnkey/coreand must integrate Turnstile themselves.CreateMfaPolicywith an ordered list of required steps; added the session and OAuth factors.ACTIVITY_UPDATEScovers the parent plus all sub-orgs from a single parent-owned endpoint.Also
waas-tx-auth.png(the co-signing sequence diagram) from Architecture into the co-signing section it actually illustrates./get-started/about-turnkey#activitiesanchor — that page has noactivitiesheading. Now points to#core-concepts.Open question
The "When to use" row "You want per-user key isolation with no shared state" isn't WaaS-specific — consumer and business wallets get sub-org isolation too. Happy to drop it if reviewers agree it dilutes the table.
🤖 Generated with Claude Code