# HustlePay: guest claim tokens before the framework adapters stopped being TODOs

Source: https://www.michaelchurley.com/blog/hustlepay-guest-claim-tokens-auth-agnostic-stripe  
Published: 2026-06-22  
Author: Michael C. Hurley  
Tags: hustlepay, stripe, convex, guest-checkout, claim-tokens, auth-agnostic, payments, turbo, bun, michaelmonetized, theo-stripe-recommendations

![Guest claim flow](/blog/hustlepay-guest-claim-tokens-auth-agnostic-stripe/screenshots/guest-claim-flow.png)

## Who

I needed auth-agnostic Stripe+Convex glue so a guest can buy first and claim after signup — without marrying Clerk into the schema.

## What

Private **michaelmonetized/hustlepay** · hustlepay@0.0.0 · @hustlepay/core@0.0.1 · HEAD `d2877fb` · 1 commit nightly (+6957). Seven hp_* tables including hp_guest_sessions (gs_ + claim_ tokens). UI in core: Pay, Cart, Checkout, Has, ClaimAccount. @hustlepay/react still exports VERSION only; other adapters are stubs. Theo stripe-recommendations cited in stripe.ts.

![Schema tables](/blog/hustlepay-guest-claim-tokens-auth-agnostic-stripe/screenshots/schema-tables.png)

![Pay + ClaimAccount in core](/blog/hustlepay-guest-claim-tokens-auth-agnostic-stripe/screenshots/pay-claim-components.png)

## Where

github.com/michaelmonetized/hustlepay (private). No demo host for this tree. hustlepay.com → /lander. hustlepay.vercel.app = unrelated Nigeria micro-pension app. Sibling stripe-convex = email-tracking lineage; publish-stack names hustlepay for guest claim / Pay(199).

![Core vs adapters](/blog/hustlepay-guest-claim-tokens-auth-agnostic-stripe/screenshots/core-vs-adapters.png)

## When

2026-06-22 repo created; sole commit d2877fb nightly same day. No follow-ups.

![Domain irony](/blog/hustlepay-guest-claim-tokens-auth-agnostic-stripe/screenshots/domain-deploy-irony.png)

## Why

Guest rows without a claim bridge orphan purchases at signup. Auth-agnostic means userId is your Convex auth string. Core shipped the spine; the adapter billboard did not.

**Engagement Q:** When @hustlepay/react only exports VERSION, do you import Pay from @core — or wait for the TODOs?
