User Accounts & Profiles

OfferHub separates user identity, financial accounts, and escrow enforcement into distinct systems.

This separation is intentional and required to:

  • minimize custodial risk,

  • avoid storing sensitive financial data,

  • remain compatible with Airtm’s API scope,

  • keep Trustless Work focused on enforcement.


System Responsibilities

OfferHub + Supabase (Identity & Profile)

Handled by Supabase.

Responsibilities:

  • user signup and login

  • authentication and sessions

  • marketplace profile data

  • user roles (buyer / seller)

  • linking external accounts (Airtm reference)

Supabase is recommended because it provides:

  • auth (email, OAuth, magic links)

  • row-level security

  • auditability

  • easy integration with backend services


Airtm (Financial Account & KYC)

Handled entirely by Airtm.

Responsibilities:

  • KYC and compliance

  • financial account creation

  • balances

  • deposits (top-ups)

  • withdrawals (payouts)

  • virtual bank accounts and local rails

OfferHub does not store:

  • identity documents

  • bank details

  • balances


Trustless Work (Escrow & Enforcement)

Handled by Trustless Work on Stellar.

Responsibilities:

  • escrow creation per order

  • milestone tracking

  • dispute states

  • release and refund enforcement

Trustless Work never manages users directly. It only enforces roles and signatures.


User Creation Flow (Reference)

Step 1 — Signup & Login

At this point:

  • the user exists in OfferHub

  • the user has a profile record

  • no financial actions are allowed yet

Step 2 — Airtm Account Linking (KYC)

When the user attempts a financial action (top-up, sell, withdraw):

User completes on Airtm:

  • signup or login

  • identity verification (KYC)

  • account readiness


Step 3 — Airtm Callback & Linking

OfferHub stores the reference in Supabase:

No credentials or balances are stored.


Step 4 — User Is Financially Enabled

After linking:

  • user can top up balance

  • user can fund escrows

  • user can receive payouts

All financial actions are orchestrated through Airtm APIs using the linked identity.


Why This Model Is Used

Why Supabase Handles Profiles

  • Marketplace identity ≠ financial identity

  • Cleaner access control

  • Easier role management (buyer / seller)

  • Avoids compliance scope creep

Why Airtm Handles KYC

  • Regulated entity

  • Purpose-built for financial compliance

  • Avoids duplicating KYC workflows

Why OfferHub Only Orchestrates

  • Reduces legal and technical risk

  • Keeps architecture modular

  • Makes the template reusable with other providers


Sequence Diagram (Simplified)


Design Constraint (Important)

OfferHub must not:

  • create Airtm users via API

  • store KYC documents

  • act as a custodian

If a platform requires full custodial control, OfferHub is not the correct pattern.


Summary

OfferHub treats:

  • Supabase as the system of record for users

  • Airtm as the system of record for money

  • Trustless Work as the system of record for escrow enforcement

OfferHub itself remains an orchestration layer.

Last updated

Was this helpful?