Wallet & identity
LIVE · message sign-in
The server verifies a one-time Solana message signature. Wallet approval remains separate from sign-in.
Integration workflow
One journey, distinct responsibilities. LamportPay coordinates the payment, Jupiter discovers swap routes, and Stables handles verification and the bank payout path.
SANDBOX · SANDBOX
SANDBOX: test-network assets and the payout partner's test environment. Real bank payouts and production identity verification are DISABLED pending production approval.
LIVE · message sign-in
The server verifies a one-time Solana message signature. Wallet approval remains separate from sign-in.
LIVE · read-only quotes
SOL → USDC route discovery uses mainnet market data. Mainnet swap execution is DISABLED in the sandbox build.
SANDBOX/SIMULATED
Sandbox quotes, hosted verification and transfer status. Production KYC and real bank payouts are DISABLED.
Wallet identity & payment eligibility
Two distinct checks: LamportPay verifies wallet control; Stables handles hosted identity verification.
01
Connect a Solana wallet and sign a plain-text sign-in message. This proves control of the wallet—not your legal identity. It is not a transaction and does not move funds.
Your wallet keeps its keys. LamportPay coordinates quotes, recipient checks and status; Stables provides the single-use deposit address and payout infrastructure.
The app can retain verification from a completed payment, avoiding repeat prompts. Current completions are sandbox records only; production identity verification and real fiat payouts remain DISABLED.
Current sandbox behavior, alongside the production path that remains disabled.
LamportPay + Solana wallet
Verify the signed message, its origin and freshness before linking the wallet to the customer account.
The same wallet-first identity model; no private key or seed phrase is accepted.
Stables · Jupiter when needed
Get a Stables sandbox quote before verification. SOL estimates use a read-only Jupiter route. Show the LamportPay fee and separate provider costs.
An approved Stables production quote determines corridor support, pricing and customer limits.
Stables
Validate the bank fields Stables requires. Own-account holder names come from the verified record; beneficiaries require their details and a payment purpose.
The verified sender can request an own-account or beneficiary bank payout, subject to partner checks.
Stables hosted page
Complete any required sandbox verification with Stables, then review the recipient, quote and costs. LamportPay does not collect identity documents.
Production KYC is DISABLED until approval. Transfers require a verified Stables customer.
Solana test network
Sign a real test-network memo transaction that moves no funds. The server checks the signer, memo, freshness and success before simulating the sandbox deposit.
DISABLED: user-signed funding to Stables’ single-use deposit address, with any applicable fee transfer and settlement checks.
Stables · signed webhooks
Signed webhooks and reconciliation follow Stables’ sandbox transfer status. Processing is not completion; a receipt updates only when the reported status changes.
The same provider-authoritative status model, with live bank settlement only after production approval.
These are existing app endpoints, not a public third-party API contract. Payment actions require a signed-in customer and server-side checks; an endpoint’s existence does not enable production payouts.
| Step | Method | Endpoint |
|---|---|---|
| Sign in | POST | /api/wallet/sign-in |
| Estimate | POST | /api/quote/estimate |
| Create payment | POST | /api/payments |
| Get quote | POST | /api/payments/:id/quote |
| Check bank details | POST | /api/payments/:id/payout-details |
| Verification status / link | GET / POST | /api/kyc |
| Prepare transfer | POST | /api/payments/:id/transfer |
| Verify test approval | POST | /api/payments/:id/test-payment |
| Read status & receipt | GET | /api/payments/:id |
Stables events arrive at /api/public/stables-webhook. Signed events and periodic reconciliation keep the stored status aligned with Stables.
Admin refresh checks an existing transfer’s status. It does not send funds, create a transfer or simulate a deposit.