A polished React frontend for a Soroban smart contract that lets teams register resources, reserve time windows, release reservations, and inspect on-chain state from one dashboard.
- Stellar Expert: https://stellar.expert/explorer/testnet/contract/CB3YQNIRZMEPO2WMXZL4M6SSBRZ3NNKSO4EXOKTPDCBRRQ674WG73PZX
- Contract ID:
CB3YQNIRZMEPO2WMXZL4M6SSBRZ3NNKSO4EXOKTPDCBRRQ674WG73PZX
- Freighter wallet ID:
GDT37UGSKAIKDUGC73VHAI6HASL27O5YTCHONKRIIH7AJBMBIQPWRVX3
This project combines:
- A Soroban smart contract for resource registration and reservation management
- A React + Vite dashboard for interacting with the contract
- Freighter wallet integration for authenticated write actions
- Read-only contract calls for resource lookup, listing, availability checks, and total count
The current frontend is designed as a clean operator console with live status output, wallet visibility, reservation timing summaries, and responsive cards for desktop and mobile.
- Register a new resource with owner, name, type, capacity, and location
- Reserve a resource for a specific start and end timestamp
- Release an active reservation
- Check whether a resource is available
- Fetch a single resource by ID
- List all registered resource IDs
- Retrieve the total number of registered resources
The Soroban contract stores each resource with:
ownernameresource_typecapacitylocationreserved_byhas_reservationreserved_startreserved_endis_available
Exposed contract methods:
register_resourcereserve_resourcerelease_resourcecheck_availabilityget_resourcelist_resourcesget_count
- Freighter wallet connect flow for authenticated transactions
- Live contract response panel for transaction and read-call results
- Reservation window formatting for human-readable time summaries
- Auto-sync of registered resource count on load and after registration
- Responsive dashboard layout with separate setup, reservation, wallet, and output panels
- React 19
- Vite 8
@stellar/stellar-sdk@stellar/freighter-api- Soroban smart contract in Rust
.
|-- contract/
| `-- contracts/hello-world/src/lib.rs
|-- docs/
| `-- readme/
| |-- placeholder-dashboard.svg
| `-- placeholder-reservation.svg
|-- lib/
| `-- stellar.js
|-- src/
| |-- App.jsx
| |-- App.css
| |-- index.css
| `-- main.jsx
`-- README.md
- Node.js installed
- npm installed
- Freighter wallet extension
- Access to Stellar Soroban testnet
npm installnpm run devnpm run buildnpm run lintWrite actions are signed with Freighter:
register_resourcereserve_resourcerelease_resource
Read actions are simulated against the configured Soroban RPC endpoint:
check_availabilityget_resourcelist_resourcesget_count
Configuration currently lives in lib/stellar.js, including:
CONTRACT_IDDEMO_ADDR- Soroban testnet RPC URL
- network passphrase
- Connect Freighter.
- Fill in resource details.
- Register the resource on-chain.
- Reserve it with a time window.
- Check availability or fetch resource data.
- Release the reservation when needed.
- The project is currently wired to Stellar testnet.
- Write actions require Freighter authorization.
- Read actions do not require an active wallet signature.
- If the count card or other read calls fail, check the contract configuration in
lib/stellar.js.
