Session Sharing - Collaborate on Solana Testing with Your Team
Overview
Section titled “Overview”Session Sharing is a powerful feature that allows you to share your entire testing environment with team members, stakeholders, or collaborators - no technical setup required on their end.
What is Session Sharing?
Section titled “What is Session Sharing?”Session Sharing creates a shareable link that contains:
- Your current program’s testing UI
- Configured account addresses
- Recent transaction history
- PDA derivations
- Account suggestions
Anyone with the link can interact with your testing environment without needing to:
- Install Testship
- Set up the Solana CLI
- Build the program locally
- Configure development tools
Use Cases
Section titled “Use Cases”Demo to Stakeholders
Section titled “Demo to Stakeholders”Show your program in action:
- Share a link with investors or clients
- Let them interact with the program safely
- No technical knowledge required
- Real-time updates as they test
Collaborate with Team Members
Section titled “Collaborate with Team Members”Work together on testing:
- Share test scenarios with developers
- Let designers see the program in action
- Enable QA team to test thoroughly
- Product managers can validate features
Bug Reports
Section titled “Bug Reports”Make debugging easier:
- Share exact state when bug occurred
- Include transaction history leading to the issue
- Let others reproduce the problem
- Faster issue resolution
Educational Purposes
Section titled “Educational Purposes”Teach others about your program:
- Create interactive tutorials
- Share with developers learning your codebase
- Onboard new team members
- Build community around your project
How It Works
Section titled “How It Works”Creating a Shareable Session
Section titled “Creating a Shareable Session”- Click “Share Session” in the Testship UI
- Configure Sharing Options:
- Choose what to include (accounts, history, etc.)
- Set expiration time (1 hour, 1 day, 1 week, never)
- Enable/disable write access
- Generate Link: Get a unique shareable URL
- Share: Send the link to anyone
Accessing a Shared Session
Section titled “Accessing a Shared Session”Recipients simply:
- Click the shared link
- View the interactive UI in their browser
- Test the program immediately
- See all context you’ve shared
Session Permissions
Section titled “Session Permissions”Control what others can do:
Read-Only Mode
- View the UI and accounts
- See transaction history
- Cannot execute instructions
- Safe for public sharing
Interactive Mode
- Execute instructions
- Create new accounts
- Modify state
- Connect their own wallet
Features
Section titled “Features”Real-Time Sync
Section titled “Real-Time Sync”Optionally enable real-time collaboration:
- See changes as others test
- Cursor presence indicators
- Live transaction feed
- Chat functionality
Session Snapshots
Section titled “Session Snapshots”Save specific states:
- Bookmark important moments
- Revert to earlier states
- Compare different scenarios
- Create test checkpoints
Custom Branding
Section titled “Custom Branding”White-label the shared session:
- Add your project logo
- Custom color themes
- Welcome messages
- Documentation links
Analytics
Section titled “Analytics”Track session usage:
- View count
- Interaction metrics
- Most tested instructions
- User feedback collection
Privacy & Security
Section titled “Privacy & Security”What’s Shared
Section titled “What’s Shared”Included in sessions:
- Program IDL (public anyway)
- Account addresses you specify
- Transaction signatures (public on-chain)
- UI state and configurations
What’s NOT Shared
Section titled “What’s NOT Shared”Protected information:
- Private keys (never!)
- Wallet seed phrases
- Local-only notes
- Personal preferences
Security Measures
Section titled “Security Measures”- Sessions are encrypted in transit
- Optional password protection
- IP-based access restrictions
- Session expiration/revocation
- Audit logs
Best Practices
Section titled “Best Practices”For Demos
Section titled “For Demos”- Use read-only mode
- Set appropriate expiration
- Include helpful descriptions
- Test the link before sharing
For Collaboration
Section titled “For Collaboration”- Enable interactive mode
- Use longer expiration
- Share with specific team members
- Enable real-time sync
For Bug Reports
Section titled “For Bug Reports”- Include full transaction history
- Note the specific failure point
- Add reproduction steps
- Set unlimited expiration until fixed
Configuration
Section titled “Configuration”Session Settings
Section titled “Session Settings”Customize before sharing:
- Duration: How long the session remains valid
- Access Level: Read-only or interactive
- Included Data: Which accounts and history to share
- Network: Mainnet, devnet, or testnet
- Rate Limits: Prevent abuse
Advanced Options
Section titled “Advanced Options”- Wallet Requirement: Require viewers to connect wallet
- Whitelist: Specify allowed wallet addresses
- Webhook Integration: Notify when session is accessed
- Custom Domain: Use your own domain for links
Limitations
Section titled “Limitations”While powerful, session sharing has some limits:
- Maximum session size: 10 MB
- Transaction history: Last 100 transactions
- Maximum active sessions: 10 per user (free tier)
- Session duration: Up to 30 days
Coming Soon
Section titled “Coming Soon”Future enhancements planned:
- Video recording of test sessions
- Guided testing workflows
- Embedded comments and annotations
- Integration with GitHub issues
- API for programmatic session creation
Next Steps
Section titled “Next Steps”Learn about the seamless development experience with Hot Reloading.