This application provides a user interface for interacting with the XRP Ledger (XRPL) on the testnet. It includes functionality for wallet management and escrow transactions.
-
🔐 Wallet Management
- Generate new testnet wallets with funded XRP
- Connect existing wallets using seeds
- View wallet balances in real-time
-
💰 Escrow Transactions
- Create time-based escrow transactions
- Set finish and cancel conditions
- View transaction results on XRPL Testnet Explorer
- Node.js (v14 or higher)
- npm or yarn
- A modern web browser
- Clone the repository:
git clone <your-repo-url>
cd my-app
- Install dependencies:
npm install
# or
yarn install
- Create environment file:
cp .env.example .env
- Configure the environment:
Edit
.env
and set your XRPL testnet URL:
VITE_APP_XRPL_RPC_URL=wss://s.altnet.rippletest.net:51233
- Start the development server:
npm run dev
# or
yarn dev
The core context provider that manages the XRPL client connection and wallet state.
interface XRPLContextType {
client: Client | null;
wallet: Wallet | null;
setWallet: (wallet: Wallet) => void;
}
- Automatic connection to XRPL network
- Connection status management
- Error handling
- Wallet state management
Allows users to generate new testnet wallets with funded XRP.
- One-click wallet generation
- Automatic funding through testnet faucet
- Displays wallet address, seed, and initial balance
- Automatically connects generated wallet
Enables users to connect existing wallets using their seeds.
- Secure wallet connection using seeds
- Real-time balance display
- Balance auto-refresh
- Manual balance refresh option
- Error handling for invalid seeds
Facilitates the creation of escrow transactions on the XRPL.
- Create time-locked escrow transactions
- Set destination address
- Specify XRP amount
- Configure finish and cancel conditions
- Transaction result display
- Direct link to transaction explorer
destination
: Recipient's XRPL addressamount
: Amount in XRPfinishAfter
: Time before escrow can be finished (in seconds)cancelAfter
: Time after which escrow can be cancelled (in seconds)
- Click "Generate New Testnet Wallet"
- Wait for the wallet to be funded
- Save the displayed seed for future use
- Input your wallet seed
- Click "Connect"
- View your wallet address and balance
- Connect a wallet
- Navigate to the Escrow section
- Enter recipient's address
- Specify amount in XRP
- Set finish and cancel times
- Click "Create Escrow"
- View transaction result and explorer link
- Never use testnet seeds on mainnet
- Keep wallet seeds secure and private
- Verify transaction details before submitting
- Test with small amounts first
my-app/
├── src/
│ ├── assets/
│ │ ├── components/
│ │ │ └── XRPLComponent.tsx # Main XRPL components
│ │ └── ui/ # UI components
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── .env.example # Environment template
└── README.md # Documentation
- Extend the XRPLContext if needed
- Create new components in the components directory
- Add UI components in the ui directory
- Update documentation
Common issues and solutions:
-
Connection Issues
- Verify XRPL testnet URL in .env
- Check network connectivity
- Ensure WebSocket support
-
Transaction Failures
- Verify wallet has sufficient balance
- Check transaction parameters
- Ensure valid destination address
-
Balance Not Updating
- Click refresh balance
- Check network connectivity
- Verify account exists on network
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the GNU General Public License v3.0 (GPLv3) - see the LICENSE file for details.
✅ You CAN:
- Use this code for personal and commercial purposes
- Modify the code
- Distribute the code
- Use the same GPLv3 license for any derivatives
- State changes you made to the code
- Disclose the source code of any derivatives
- Include the original copyright notice
❌ You CANNOT:
- Create closed-source versions
- Sublicense the code
- Hold the author liable
This ensures that any modifications or derivatives of this project must also remain open-source and freely available to the community.
- XRPL.js Documentation
- React Documentation
- Vite
- Tailwind CSS