Skip to content

Wallet Sandbox; Keypair Generator, Testnet Funder & Test Payment Console #19

Description

@grantfox-oss

Overview

Every Stellar developer's first step is generating a keypair and funding it on testnet. Right now this means jumping between the Stellar Laboratory, Friendbot, and Horizon Explorer as three separate tools. SaviTools should close that loop with a single Sandbox page that handles the full wallet bootstrap workflow — generate, fund, inspect, and send test payments — without leaving the tool.

What needs to be built

NestJS API — apps/api/src/modules/sandbox/

  • POST /sandbox/keypair — generates a new ed25519 keypair; returns public key + secret key (never stored server-side; generation must be stateless)

  • POST /sandbox/fund — calls Friendbot with the provided public key; returns funding tx hash and confirmation status

  • GET /sandbox/account/:publicKey — proxies Horizon account details: balances, sequence number, signers, thresholds, flags

  • POST /sandbox/payment — submits a test payment (XLM or any issued asset) between two sandbox accounts; returns tx hash and result codes
    Next.js web — /sandbox route

  • "Generate Keypair" button — renders public key + secret key side by side with individual copy buttons

  • Persistent warning banner: "This sandbox is for Stellar testnet only. Never use generated keys for real funds."

  • "Fund on Testnet" — one-click Friendbot call anchored to the generated public key; shows tx hash with Stellar Expert link on success

  • Account Inspector panel — enter any public key, renders live balance table (asset, balance, limit), sequence number, and signer list

  • Send Test Payment form:

    • From / To public key fields
    • Asset selector (XLM or custom code:issuer)
    • Amount input
    • Memo field (optional)
    • Submit → shows tx hash, fee charged, and result code inline
  • Testnet / Mainnet toggle inherited from global app state (sandbox features disabled on mainnet with a clear callout)

Acceptance Criteria

  • Keypair generation uses client-side entropy — no secret key is ever transmitted to the API
  • Friendbot funding completes and the Account Inspector reflects the new balance within 5 seconds
  • Payment form validates asset format (CODE:ISSUER) before submission and shows inline validation errors
  • All testnet-only warnings are visible above the fold without scrolling
  • Page is fully functional at 375px viewport width (mobile)

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSOfficial CampaignCampaign: Official CampaigndocumentationImprovements or additions to documentationenhancementNew feature or requestgood first issueGood for newcomershelp wantedExtra attention is needed

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions