Economy Service
The economy runs as a separate microservice from the main Site application.Architecture
Economy Service
Standalone service handling all financial operations
- Default port: 2009
- REST API for transactions
- Persistent balance storage
- Transaction history tracking
Site Integration
Main application communicates via HTTP
- Fetch-based API calls
- Balance queries
- Transaction processing
- Admin operations
Configuration
The economy service URL is configured in the Site:Site/src/lib/server/economy.ts:4
Currency System
Mercury Core uses a virtual currency system with configurable display.Currency Symbol
Configure your currency symbol inAssets/schema.ts:
$for dollars€for euros🪙for custom tokensR$for Robux-style
Balance Management
User balances are managed by the Economy service: Get Balance:Site/src/lib/server/economy.ts:31-32
Transactions
The economy supports three transaction types:- Transaction
- Mint
- Burn
Standard Transaction
Transfer currency between users:- Asset purchases
- User-to-user transfers
- Paid features
Site/src/lib/server/economy.ts:77-97Stipends
Mercury Core supports automatic currency distribution to users.Stipend System
Stipends provide regular income to users: Get Current Stipend:Site/src/lib/server/economy.ts:29-30, 71-75
Implementation Notes
The stipend system requires external scheduling:- Stipends are not automatically distributed on a timer
- You must implement a cron job or scheduled task
- Call the stipend endpoint for each eligible user
- Track last stipend time to prevent abuse
Fee System
Mercury Core uses fees to manage the economy and prevent abuse.Platform Fees
Transaction Fee:Creation Fees
Certain actions cost currency to prevent spam:Asset Creation
Group Creation
Site/src/lib/server/economy.ts:125-131
Transaction History
Users and administrators can view transaction history.User Transactions
View personal transaction history at/economy:
- All transactions involving the user
- Sent and received amounts
- Transaction notes and timestamps
- Related links (e.g., to purchased assets)
- Current balance display
Site/src/lib/server/economy.ts:65-66
Admin Transactions
Administrators (level 5) can view all transactions at/admin/transactions:
- Complete platform transaction history
- All users’ transactions
- Mint and burn operations
- Platform-wide financial overview
Site/src/lib/server/economy.ts:67-68, Site/src/routes/(main)/admin/transactions/+page.server.ts:8-15
Transaction Display
Transactions are enriched with user data for display:- Extract all user IDs from transactions
- Query database for user information
- Map IDs to usernames and status
- Replace IDs with user objects in transaction data
Site/src/lib/server/economy.ts:185-220
Economy Integration
The economy service integrates with core features:Asset Purchases
When a user purchases an asset:
Source:
Site/src/routes/(main)/catalog/[id=asset]/[name]/+page.server.ts:163-217
Asset Creation
When a user creates an asset:
Source:
Site/src/lib/server/economy.ts:133-149
Group Creation
Similar to asset creation:- Check user balance
- Burn group creation fee
- Create group record
- Record transaction
Site/src/lib/server/economy.ts:169-183
Error Handling
The economy integration includes robust error handling:Connection Errors
Transaction Errors
Common transaction failures:- Insufficient Funds: User doesn’t have enough currency
- Invalid Amount: Negative or non-numeric amounts
- Service Unavailable: Economy service is down
- Validation Failure: Transaction doesn’t meet requirements
Site/src/lib/server/economy.ts:8-9
Security Considerations
Balance Validation
- All transactions are validated server-side
- Client cannot manipulate balances
- Economy service is the single source of truth
Anti-Fraud
- Creation fees prevent spam
- Rate limiting on transactions
- Audit logging of all financial operations
- Admin-only access to sensitive operations
Transaction Integrity
- Atomic operations ensure consistency
- Failed transactions don’t affect balances
- Transaction history is immutable
- All operations are logged for audit
Future Enhancements
The economy system includes placeholders for future features:Returns System
TheReturns field in transactions is reserved for:
- Asset refunds and exchanges
- Partial refunds
- Store credit systems
- Chargeback handling