Prerequisites
Before publishing, ensure you have:- A connected Web3 wallet (MetaMask recommended)
- Sufficient network tokens for transaction fees
- Your data file accessible via URL, IPFS, or API endpoint
- Terms and conditions URL (optional, portal default will be used)
Publishing Workflow
Choose Asset Type
Select the type of asset you want to publish:
- Dataset: Raw data files accessible for download or compute
- Algorithm: Code that processes data in Compute-to-Data environments
- SaaS: Software-as-a-Service offering with redirect URL
Configure Data NFT and Metadata
Provide essential metadata for your asset:Data NFT Information
- NFT Name and Symbol: Unique identifiers for your Data NFT
- These represent the intellectual property of your asset
- Title: Descriptive name (e.g., “Shapes of Desert Plants”)
- Description: Thorough description using Markdown format
- Tags: Searchable keywords (e.g., “logistics”, “agriculture”)
- License: SPDX identifier or URL to custom license
- Service Credential: URL to Gaia-X service credential (optional)
Dataset-Specific Fields
For datasets, indicate if your data contains Personally Identifiable Information (PII):Algorithm-Specific Fields
For algorithms, configure the Docker container:- Docker Image: Select from presets or provide custom image
- Image Checksum: SHA-256 digest of your Docker image
- Entrypoint: Command to execute (e.g.,
python $ALGO) - Algorithm Custom Parameters: Define user inputs if needed
Enabling “Keep my algorithm private for Compute-to-Data” prevents downloading, allowing the algorithm to only run in compute jobs.
Configure File Access
Add your data file or service endpoint:URL/File OptionsAccess Controller URLThe provider service manages file access. Use the default or specify a custom provider URL.Access Type
- URL: Direct file link (e.g.,
https://file.com/data.json) - API: REST endpoint with optional headers
- GraphQL: GraphQL endpoint with query definition
- IPFS: Content identifier (CID)
- SaaS: Redirect URL for service access
- Access: Files can be downloaded directly
- Compute: Files only accessible in Compute-to-Data environments
Set Access Policies
Define who can access your asset and for how long:Access PeriodIf empty, anyone can access the asset.Denylist (Optional)Block specific wallet addresses from accessing your asset.
- Forever
- 1 hour
- 1 day
- 1 week
- 1 month
- 1 year
Configure Pricing
Choose your pricing model:
Fixed Price
- Price: Amount in selected token
- Base Token: Payment token (OCEAN, USDC, etc.)
- Datatoken Amount: Number of datatokens to mint
Free Access
- No payment required
- Users still need to complete transaction to obtain datatoken
- You must accept the “Free Asset Agreement”
SaaS Payment Modes
- Subscription: One-time payment for ongoing access
- Pay per use: Payment per service invocation (requires contracting provider)
Review and Submit
Review your asset configuration in the preview screen:
- Verify all metadata fields
- Check file access configuration
- Confirm pricing and policies
- Accept portal Terms and Conditions
If a step fails, you can retry from that step without repeating successful transactions.
Using Automation Wallet
You can use an automation wallet to publish assets without manual transaction confirmations:After Publishing
Once published successfully:- Your asset receives a unique DID (Decentralized Identifier)
- The asset appears in search results and your profile
- You can edit metadata at any time (requires transaction)
- You can monitor downloads/compute jobs in your profile
- Edit metadata and pricing
- View consumption statistics
- Monitor compute jobs (for compute assets)
- Manage access controls
Troubleshooting
Transaction Failures
Insufficient funds- Ensure you have enough native tokens for gas fees
- Check token balance matches pricing requirements
- Verify file URL is publicly accessible
- Check provider service is online
- Ensure file size doesn’t exceed limits (1 GB for compute)
- Increase gas limit if transaction runs out of gas
- Retry the specific failed step
- Check network connection stability
File Validation Issues
File not accessible- Remove firewall or authentication requirements
- Test URL in browser or curl
- For APIs, verify headers are correct
- Ensure CID is properly formatted
- Verify content is pinned and accessible
Algorithm Publishing
Docker image checksum mismatch- Verify entrypoint command is valid
- Test algorithm locally before publishing
- Check environment variable requirements
Best Practices
- Use descriptive metadata: Help users discover and understand your asset
- Set appropriate pricing: Consider market rates and data value
- Configure access policies: Use allowlists for controlled access
- Test file access: Verify URLs are accessible before publishing
- Provide samples: Add sample files for datasets when possible
- Keep algorithms private: Enable privacy for proprietary algorithms
- Monitor consumption: Track usage and adjust pricing as needed
- Update metadata: Keep descriptions current as data evolves
Related Resources
Code References
Key implementation files:- Publishing flow:
src/components/Publish/index.tsx:260-293 - Metadata configuration:
src/components/Publish/Metadata/index.tsx - Validation logic:
src/components/Publish/_validation.ts - Type definitions:
src/components/Publish/_types.ts