Skip to content

fix(auth): Validate signup contact info and deprecate wallet project creation - #359

Merged
0xIchigo merged 6 commits into
mainfrom
nathan/deprecate-wallet-project-create
Oct 10, 2026
Merged

0xIchigo merged 6 commits into
mainfrom
nathan/deprecate-wallet-project-create

Conversation

@nathanliow

@nathanliow nathanliow commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • A wallet could get a free-plan project with no email: walletSignup → payUSDC (1 USDC to treasury) → createProject
  • payUSDC now throws without sending funds, since the backend no longer creates projects for wallet-only sign-ins. createProject, payUSDC and PAYMENT_AMOUNT are @deprecated and will be removed in the next major.
  • Contact info: new shared requireContactInfo helper (in signupHelpers.ts, with EMAIL_PATTERN) trims email / firstName / lastName, treats non-strings or whitespace-only values as missing, and checks the email format. signup uses it only when creating a new account; wallets that already have a project are unaffected. upgradePlan uses it whenever any contact field is passed (partial info fails like signup); with none passed, the backend still auto-fetches from the existing customer.
  • AGENTS.md: the signup example reads paymentLink from the payment_required result, and the walletSignup → listProjects → getProject / createApiKey steps are documented as the way to recover an existing wallet's key.
  • CHANGELOG updated.

Related: helius-labs/core-ai#191, helius-labs/website#692, helius-labs/docs#1112

Release note: publish this before deploying monorepo#20801.

Verification

  • pnpm typecheck, pnpm format:check, eslint on changed files: clean
  • jest src/auth/tests/{signup,upgradePlan,payUSDC,createProject}.test.ts: pass
  • pnpm check-bundle: pass
  • Full jest suite: not run locally

🤖 Generated with Claude Code

nathanliow and others added 4 commits October 9, 2026 17:45
Deprecate createProject, payUSDC and PAYMENT_AMOUNT: the backend no
longer lets wallet JWTs create projects, so new accounts must go through
signup / signupAndPay, which require email, firstName and lastName.
Add an email format check for new signups and rewrite the AGENTS.md
auth example around signup / signupAndPay.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
payUSDC now throws without sending funds, since the backend no longer
creates projects for wallet-only sign-ins. Trim email before validating
and stop echoing it in the error. AGENTS.md: read paymentLink from the
payment_required result and restore the existing-wallet key recovery
steps.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Add normalizeContactField, which trims strings and treats non-strings or
whitespace-only values as missing. Use it in signup and upgradePlan, and
test that trimmed values reach checkout.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@nathanliow nathanliow changed the title fix(auth): Validate signup email and deprecate wallet project creation fix(auth): Validate signup contact info and deprecate wallet project creation Oct 9, 2026
nathanliow and others added 2 commits October 9, 2026 18:48
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Move EMAIL_PATTERN and the contact checks into a shared
requireContactInfo helper. signup always uses it for new accounts;
upgradePlan uses it whenever any of email/firstName/lastName is passed,
so partial or whitespace-only names and malformed emails fail with the
same errors instead of being dropped or sent as-is.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@0xIchigo 0xIchigo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :shipit:

@0xIchigo
0xIchigo merged commit 23483d6 into main Oct 10, 2026
4 checks passed
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.

2 participants