Ethos Guild - Complete Implementation Guide
Overview
Ethos Guild is a music production and licensing ecosystem within AeThex. Artists can upload tracks, get verified, offer services for hire, and manage licensing agreements. The system is now fully implemented with all core features working end-to-end.
Completed Features
Phase 1: Artist Verification Workflow ✅
Admin Dashboard:
/admin→ "Ethos Verification" tabArtist Submission:
/ethos/settings→ Verification formVerification Process: Manual review by admins with approval/rejection
Email Notifications: Verification status updates sent to artists
Database:
ethos_verification_requestsandethos_verification_audit_logtables
Phase 2: Supabase Storage Integration ✅
Track Upload: Audio files stored in
ethos-tracksbucketPublic Access: Tracks are publicly readable for streaming
User Isolation: Each user can only upload to their own folder
RLS Policies: Secure access control via Row-Level Security
File Management: Upload, download, delete operations supported
Phase 3: Email Notifications ✅
SMTP Configuration: Hostinger SMTP (smtp.hostinger.com:465)
Templates: Verification, licensing, and status notifications
Delivery: Reliable email delivery via Nodemailer
Async Processing: Non-blocking email sending
Phase 4: Ecosystem License Agreement ✅
Modal Interface: Click-wrap agreement on first track upload
License Tracking:
ethos_ecosystem_licensestableTrack Linking: Accepted licenses linked to specific tracks
Re-acceptance: Artists can accept license once
Phase 5: Artist Services & Pricing ✅
Flexible Pricing: JSON-based
price_liststructureService Types: Custom tracks, SFX packs, full scores, day rates
For Hire Status: Boolean flag to show in marketplace
Marketplace Display: Services visible in
/nexusAudio Production sectionContact System: Service request form with commission tracking
Phase 6: NEXUS Marketplace Integration ✅
Two Components: AudioTracksForSale and AudioServicesForHire
Artist Directory: Filter by skills, ratings, services
Track Library: Filter by genre, license type, price
Search & Discovery: Full-text search across all content
Profile Integration: Links to artist profiles and portfolio
Phase 7: Artist Portfolio ✅
Route:
/passport/me(personal) and/passport/:username(public)Sections: Ethos Guild info, tracks, skills, verification status
Self View: Edit link to settings for own profile
Public View: Shows published tracks and for-hire services (no pricing without hire status)
Integration: Seamlessly combined with main AeThex passport
API Endpoints
Artist Management
Artist Services
Service Requests
Tracks
Verification
Licensing
Database Schema
Main Tables
ethos_artist_profiles
user_id(PK): References user_profilesfor_hire: Boolean flag for marketplace visibilityverified: Verification statusskills: Array of skillsprice_list: JSON with flexible pricingecosystem_license_accepted: License acceptance flagRLS: Users see all, own updates only
ethos_tracks
id(PK): UUIDuser_id: Artist who uploadedtitle,description: Track infofile_url: Supabase Storage pathgenre: Array of genreslicense_type: "ecosystem" or "commercial_sample"duration_seconds,bpm: Audio metadatais_published: Visibility flagRLS: Public read, user write/delete own
ethos_ecosystem_licenses
id(PK): UUIDtrack_id: Which track accepted licenseartist_id: Which artist acceptedaccepted_at: When license was acceptedRLS: User sees own, admins see all
ethos_verification_requests
id(PK): UUIDuser_id: Artist requesting verificationstatus: "pending", "approved", "rejected"submission_notes,portfolio_links: Application detailsreviewed_at,reviewed_by: Admin review infoRLS: Artists see own, admins see all
ethos_service_requests
id(PK): UUIDartist_id: Requested artistrequester_id: Client requesting serviceservice_type: track_custom, sfx_pack, full_score, day_ratedescription,budget,deadline: Request detailsstatus: pending, accepted, in_progress, completed, declinedRLS: Both parties can view, artist updates
Storage Bucket
ethos-tracks (Public)
Path:
/{user_id}/{track_id}/audio.mp3RLS: Authenticated users can upload to own folder, public read, user delete own
Policy: Users isolated to their own folder, public streaming access
User Flows
Artist Upload Flow
Artist goes to
/ethos/settingsClicks "Upload Track" button
Selects audio file
First time: EcosystemLicenseModal shows click-wrap agreement
Artist reviews and accepts license
License recorded in
ethos_ecosystem_licenseswithecosystem_license_accepted = trueTrackMetadataForm opens for track details
Artist enters title, description, genre, BPM, etc.
File uploaded to Supabase Storage at
ethos-tracks/{user_id}/{track_id}/audio.mp3Track record created in
ethos_trackstableAuto-linking: If license_type = "ecosystem", link created in
ethos_ecosystem_licensesSuccess toast shown, track appears in library
Verification Flow
Artist goes to
/ethos/settings→ "Request Verification"Fills form: bio, skills, portfolio links, submission notes
POST to
/api/ethos/verificationwith action: "submit"Request stored in
ethos_verification_requeststableEmail sent to artist confirmation
Admin views requests at
/admin→ "Ethos Verification" tabAdmin reviews artist profile, tracks, and submission
Admin clicks "Approve" or "Reject"
If approved:
verified = trueinethos_artist_profiles, email sent to artistIf rejected:
verified = false, rejection reason emailedArtist can see status on settings page
Marketplace Discovery Flow
User goes to
/nexusClicks "Services for Hire" tab
Component fetches:
GET /api/ethos/artists?forHire=true&limit=50Displays artists with skills, ratings, service prices
Can filter by: skill, service type, minimum rating
Clicks "View Profile" →
/passport/:usernameOn profile: Shows Ethos Guild section with:
Verification badge (if verified)
"Available for hire" badge
Skills display
Published tracks
Link to manage portfolio
Clicks "Request Service" → Opens service request form
Fills: service type, description, budget, deadline
POST to
/api/ethos/service-requestsArtist notified via email
Artist can accept/decline in dashboard
Artist Portfolio View
Artist goes to
/passport/me(personal portfolio)Ethos Guild Section Shows:
Verified Artist badge (if applicable)
Available for hire badge (if applicable)
Top 5 skills
Published tracks (max 5)
Edit link to
/ethos/settings
Visitors go to
/passport/:usernamePublic view shows (if artist for_hire):
Verified/for-hire badges
Skills
Published tracks
Pricing NOT shown on portfolio (only on NEXUS marketplace)
Can click "View Profile" from NEXUS to access
Deployment Checklist
Database
Storage Setup
Environment Variables
Testing Steps
Technical Details
License Linking Logic
When a track is uploaded with license_type: "ecosystem":
Track record created in
ethos_tracksImmediately after insert, code creates record in
ethos_ecosystem_licensesLinks: track_id, artist_id, accepted_at (current timestamp)
This establishes the relationship between license agreement and track
Storage Path Format
User ID isolates folders for RLS
Track ID groups related files
Flat structure easy to manage
Service Pricing Structure
Flexible JSON for future service types
nullvalues mean service not availableBoolean flag for custom quotes
Verification Workflow
Future Enhancements
Rating System: Add 5-star ratings for artists and service quality
Payment Processing: Integrate Stripe for service payments
Contracts: Generate and manage service contracts
Escrow: Hold funds during service delivery
Dispute Resolution: Handle disagreements between parties
Review System: Post-service reviews and feedback
Portfolio Verification: Artist can upload portfolio samples
License Variants: Different license types (exclusive, non-exclusive, etc.)
Collaboration Requests: One artist request another for collab
Analytics: Track uploads, downloads, earnings per artist
Support
For issues or questions about Ethos Guild:
Check
/docssection for tutorialsReview
/ethos/libraryfor example tracksSee
/admin→ "Ethos Verification" for statusContact [email protected] for account issues
Implementation Date: February 2025 Status: Production Ready ✅ Version: 1.0
Last updated
