This guide compiles common issues encountered by developers and users of the Tokenized Fractional Real-World Assets (RWA) Marketplace, along with step-by-step instructions to resolve them.
- Freighter Wallet & Connection Issues
- Transaction & Smart Contract Failures
- Network & Configuration Problems
- Backend API & Metadata Issues
- Advanced Operations (Vesting & Dividends)
- Symptoms:
- The frontend console displays:
[WalletStore] connect failed: Error - UI shows an alert:
"Failed to connect Freighter wallet. Ensure the extension is installed and unlocked." - Clicking "Connect Freighter" does nothing or displays a pending spinner infinitely.
- The frontend console displays:
- Root Cause:
- The Freighter browser extension is not installed.
- The Freighter extension is locked (requires entering password).
- The dApp does not have permission to connect to the extension.
- The user is using an unsupported browser or mobile device without Freighter support.
- Solution:
- Install Freighter: Ensure the extension is installed. Get it from the official Freighter Wallet website.
- Unlock the Wallet: Click the Freighter extension icon in your browser toolbar and enter your password.
- Check Connection Settings: Open Freighter -> Settings -> Connected Sites, and verify that
http://localhost:5173is permitted. - Reload: Refresh the page (
F5orCtrl+R) and try clicking the Connect Freighter button again.
- Symptoms:
- Console displays:
[useSorobanWrite] Error executing tx buy_shares: Error: Freighter transaction signing failed - UI displays:
Transaction buy_shares failedorFreighter transaction signing failed
- Console displays:
- Root Cause:
- The user rejected the transaction popup inside the Freighter extension.
- The extension timed out before the user signed the transaction.
- Solution:
- Open the Freighter popup and review the transaction parameters.
- Click Sign / Approve instead of Reject.
- If no popup appears, check if your browser blocked a popup or if the Freighter extension icon is flashing in the extension bar.
- Symptoms:
- Buying shares results in a red alert:
"Transaction failed. Check your token balance and try again."
- Buying shares results in a red alert:
- Root Cause:
- The buyer wallet does not have a sufficient balance of the required payment token (default Testnet token:
CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC). - The buyer wallet does not have enough XLM to pay for transaction fees.
- The buyer wallet does not have a sufficient balance of the required payment token (default Testnet token:
- Solution:
- Check XLM balance: Go to Freighter and ensure you have at least 2-5 XLM to cover base network reserves and gas/transaction fees. If on Testnet, you can fund your address via the Stellar Laboratory Friendbot.
- Check Payment Token balance: Verify that your Freighter account holds the configured payment token. If you need to mint/receive tokens, contact the admin or use the Stellar Asset Client to mint tokens to your address.
- Symptoms:
- An alert box pops up:
"Not enough shares available."
- An alert box pops up:
- Root Cause:
- You are trying to buy more shares than the contract currently has left in its available pool (
AvailableShares).
- You are trying to buy more shares than the contract currently has left in its available pool (
- Solution:
- Reduce your purchase quantity in the buy input to be less than or equal to the remaining available shares displayed in the marketplace.
- If you are the Administrator, you can increase the available share supply by invoking the
set_total_sharesfunction (or via the Admin panel).
- Symptoms:
- Buying shares results in:
"Marketplace is currently paused. Try again later."
- Buying shares results in:
- Root Cause:
- The smart contract is currently in a paused state. The admin has called the
pausemethod on the contract.
- The smart contract is currently in a paused state. The admin has called the
- Solution:
- Wait for the administrator to unpause the marketplace.
- If you are the Administrator, invoke the
unpausemethod on the contract using the CLI or the Admin interface:soroban contract invoke --id <CONTRACT_ID> --source admin --network testnet -- unpause
- Symptoms:
- The top of the page displays a warning:
"Set VITE_CONTRACT_ID in frontend/.env to connect to a deployed contract."
- The top of the page displays a warning:
- Root Cause:
- The frontend development server is running, but the
frontend/.envfile is missing orVITE_CONTRACT_IDis set to the default placeholder'C...'.
- The frontend development server is running, but the
- Solution:
- Ensure you have deployed the smart contract using
soroban contract deploy. - Copy the resulting contract ID (e.g.,
CAS3...). - Create/edit
frontend/.envand insert:VITE_CONTRACT_ID=YOUR_COPIED_CONTRACT_ID VITE_RPC_URL=https://soroban-testnet.stellar.org:443 VITE_NETWORK_PASSPHRASE="Test SDF Network ; September 2015" VITE_API_URL=http://localhost:3001
- Restart your Vite development server (
npm run dev).
- Ensure you have deployed the smart contract using
- Symptoms:
- Simulation fails with RPC errors or timeouts.
- Unable to fetch initial share balance or available shares.
- Root Cause:
- The RPC server (
https://soroban-testnet.stellar.org:443) is temporarily down or rate-limited. - Your Freighter wallet network settings are set to Mainnet instead of Testnet.
- The RPC server (
- Solution:
- Open Freighter, click the network selection dropdown at the top, and ensure Testnet is selected.
- Verify that your
frontend/.envhas the correctVITE_NETWORK_PASSPHRASEmatching Freighter's network settings. - Check the Stellar Status Page to see if Testnet is undergoing maintenance.
- Symptoms:
- "Available Assets" section shows a network error, is empty, or spins indefinitely.
- Browser console displays CORS errors or
fetch failedtohttp://localhost:3001.
- Root Cause:
- The off-chain metadata Express API is not running.
- The frontend
VITE_API_URLenvironment variable points to the wrong port. - The backend
.envhas incorrectCORS_ORIGINSsettings.
- Solution:
- Start the backend: Navigate to
/backendand runnpm run dev. Verify it outputsServer running on port 3001. - Verify CORS: In
backend/.env, ensureCORS_ORIGINSincludeshttp://localhost:5173. - Check Frontend Config: Confirm
frontend/.envcontainsVITE_API_URL=http://localhost:3001.
- Start the backend: Navigate to
- Symptoms:
- Claiming vested shares panics or shows a transaction execution error.
- Root Cause:
- The current ledger timestamp is prior to the vesting schedule's cliff or has not reached a point where new shares can be unlocked.
- Solution:
- Verify the vesting duration on your schedule. You can check the current claimable shares using the
get_claimable_vested_sharesmethod before submitting a claim transaction.
- Verify the vesting duration on your schedule. You can check the current claimable shares using the
- Symptoms:
- Admin dividend distribution transactions fail.
- Root Cause:
- Admin specified a
total_amountof zero or negative. - No users have purchased shares yet, so the contract's holders list is empty.
- Admin specified a
- Solution:
- Ensure the distribution amount is greater than zero.
- Verify that at least one user has successfully purchased shares (
buy_shares) before attempting to distribute dividends.