Skip to content

Hosting-as-a-Service (HaaS)

What is HaaS?

Hosting-as-a-Service (HaaS) is a managed infrastructure solution that eliminates the need to deploy and maintain your own daemon instances. Instead of handling installation, environment setup, and server provisioning manually, you provide your service configuration, and the platform automatically provisions, deploys, and manages the daemon for you.

Each HaaS deployment runs in an isolated, containerized environment with:

  • Dedicated virtual machine
  • Pre-configured runtime environment
  • Automated daemon deployment and lifecycle management
  • Built-in payment channel storage (ETCD)
  • Automated infrastructure updates and maintenance
HaaS Deployment Workflow

Complete HaaS deployment process from development to production

HaaS vs Self-Hosted Daemon

Choose the deployment method that best fits your needs:

AspectHaaS (Managed)Self-Hosted Daemon
Infrastructure Setup✅ Fully automated⚠️ Manual configuration required
Server Management✅ Managed by platform❌ You maintain servers
ETCD Configuration✅ Pre-configured⚠️ Manual setup required
SSL Certificates✅ Handled automatically⚠️ You manage certificates
Updates & Maintenance✅ Automatic❌ Manual updates
Technical ExpertiseBeginner-friendlyAdvanced
Cost StructureMonthly subscription (FET tokens)Infrastructure costs only
Scalability✅ Easy scaling⚠️ Manual scaling

When to Use HaaS

Choose HaaS if:

  • You want to focus on AI service development, not infrastructure
  • You need quick deployment without server management
  • You prefer predictable monthly costs
  • You don't want to handle ETCD, SSL, or daemon configuration
  • You need reliable uptime with automated maintenance

When to Use Self-Hosted Daemon

Choose Self-Hosted if:

  • You need full control over infrastructure
  • You have existing server infrastructure
  • You want to minimize recurring costs
  • You require custom daemon configurations
  • You have DevOps expertise

For self-hosted deployment instructions, see the Full Onboarding Guide.

Prerequisites

Before deploying with HaaS, ensure you have:

  1. Service Created (Not Published): Your service must be created through the Publisher Portal (Steps 1 and 2 completed) but NOT yet published to the blockchain. Once a service is published, HaaS deployment will no longer be available for that service.
  2. AI Service Running: Your actual AI service must be deployed and accessible via HTTP/HTTPS endpoint
  3. MetaMask Wallet: With sufficient FET tokens for monthly subscription payment
  4. Service Endpoint: Public URL where your AI service is accessible (e.g., https://your-service.example.com)
  5. Authorization (optional): Key, value, and location for each authorization parameter if your service requires authentication

Naming Requirements

When creating your service (Steps 1 and 2), ensure your Organization ID and Service ID follow these rules:

  • Lowercase only: Use only lowercase letters (a-z)
  • Allowed characters: Letters, numbers, and hyphens (-)
  • No special characters: Do not use uppercase letters, underscores, spaces, or other special characters

Valid examples:

  • Organization ID: my-company, acme-corp, ai-services, test-org
  • Service ID: image-classifier, sentiment-analysis, translation-api, test-service

Invalid examples:

  • MyCompany (uppercase)
  • test_service (underscore)
  • AI Services (space and uppercase)

Deploying Your Daemon with HaaS

Step 1: Access HaaS During Service Creation

After completing the first two steps of service creation in the Publisher Portal, you'll see the daemon configuration step. At the top of this page, you'll find:

"TRY OUR HOSTING
DEPLOY DAEMON IN ONE CLICK"

Click this section to open the HaaS setup wizard.

HaaS Entry Point

Step 2: Configure Daemon Hosting

The Daemon Hosting Payment modal will appear with the following fields:

Required Configuration

FieldDescriptionExample
Monthly CostSubscription price in FET tokens (displayed automatically)TBD FET/month
Service EndpointPublic URL where your AI service is runninghttps://api.yourservice.com

Optional Configuration

FieldDescriptionExample
AuthorizationKey, value, and location for each authorization parameter if your service requires authenticationKey: Authorization, Value: Bearer token123, Location: header
HaaS Payment Configuration

Note: Ensure your Service Endpoint is publicly accessible and properly configured to handle requests from the HaaS daemon.

Step 3: Create and Pay

  1. Click the Create button after filling in the required fields
  2. MetaMask will prompt you to confirm the transaction
  3. Approve the FET token payment for your first month of hosting

The transaction covers:

  • Virtual machine provisioning
  • Daemon deployment
  • ETCD storage setup
  • SSL certificate configuration
  • One month of hosting service

Step 4: Automatic Configuration

Once payment is confirmed, the platform automatically:

  • Provisions dedicated infrastructure
  • Deploys and configures the daemon
  • Generates and applies SSL certificates
  • Sets up payment channel storage (ETCD)
  • Populates daemon configuration in your service settings

You'll see these fields automatically filled in your service configuration:

FieldDescription
Daemon EndpointPublic HTTPS endpoint for your hosted daemon
Free Call Signer AddressEthereum address for free call authentication
Auto-filled Daemon Configuration

Note: No ETCD configuration required — HaaS uses a managed ETCD cluster automatically.

Note on Screenshot: Ensure Organization ID and Service ID in screenshots follow naming requirements (lowercase, hyphens only, no special characters). Example: my-company / sentiment-analyzer instead of Test_Org / my_service.

Step 5: Complete Service Publication

After HaaS successfully deploys your daemon, complete the remaining service publication steps in the Publisher Portal. Your service is now live with a fully managed daemon infrastructure.

Managing Your HaaS Daemons

Accessing the HaaS Dashboard

Navigate to the HaaS section in the left sidebar of the Publisher Portal to view all your hosted daemons.

HaaS Sidebar Navigation

Daemon List Overview

The My Daemons page displays all your HaaS-managed daemons with the following information:

ColumnDescription
IDUnique identifier for the daemon instance
StatusCurrent operational state of the daemon
Expiry DateWhen your current subscription period ends
Last PaymentDate of your most recent payment or "no payment data available"
ActionsManagement options (three-dot menu)
HaaS Daemon List

Daemon Status Indicators

StatusMeaning
INITDaemon entity is created, awaiting payment
READY_TO_STARTPayment confirmed, daemon is ready to be deployed
STARTINGDaemon is being deployed
RESTARTINGDaemon is being redeployed
UPDaemon is deployed and actively handling requests
DELETINGDaemon is being deleted
DOWNDaemon is stopped or subscription expired (not paid)
CLAIMINGDaemon is temporarily running for one hour to enable fund withdrawal via CLI
ERRORDaemon encountered an error during deployment and requires attention

Daemon Management Actions

Click the three-dot menu (⋮) next to any daemon to access management options:

HaaS Actions Menu

Top Up

Purpose: Extend your daemon's subscription by paying for additional time.

How it works:

  1. Click Top Up
  2. Confirm the FET token payment for the next subscription period
  3. MetaMask will prompt you to approve the transaction
  4. Your daemon's expiry date will be extended by the purchased period

Tip: Top up before your expiry date to avoid service interruption.

Detail

Purpose: View detailed information and status history for a specific daemon.

What you'll see:

  • Current daemon status
  • Full status change history with timestamps
  • Configuration details
  • Deployment information
  • Service endpoint and authorization settings

This page helps you:

  • Monitor daemon health
  • Track status changes over time
  • Debug issues with deployment or connectivity

Update Daemon Config

Purpose: Modify your daemon's service connection and authorization settings.

What you can update:

  • Service Endpoint: Change the URL of your AI service if it moves
  • Authorization: Update API keys, tokens, or authentication headers

When to use this:

  • Your AI service moved to a new domain or port
  • You rotated API keys or authentication tokens
  • You changed your service's authentication requirements

Important: Ensure your new service endpoint is accessible before updating to avoid downtime.

Run For Claiming

Purpose: Temporarily activate an inactive daemon to enable fund withdrawal from payment channels.

Availability:

  • This feature is only available when daemon status is DOWN
  • Can be used once every 24 hours (not sooner than 24 hours after the last successful claiming period started)

How it works:

  1. When your daemon subscription expires, the daemon becomes inactive (DOWN status)
  2. Funds from service calls remain in payment channels on the MPE (Multi-Party Escrow) contract
  3. To withdraw these funds via CLI, you need signatures from the daemon proving service calls occurred
  4. Click Run For Claiming to temporarily activate the daemon
  5. Daemon status changes to CLAIMING and runs for one hour
  6. First 2-3 minutes: Daemon is starting up and initializing
  7. After startup: Use CLI commands to claim funds from payment channels using the daemon's signatures

When to use this:

  • Your daemon subscription has expired but you have unclaimed funds in payment channels
  • You want to withdraw funds without renewing the full subscription
  • You need daemon signatures to complete the claiming process via CLI

Important: This feature activates the daemon for one hour specifically to provide the signatures needed for claiming funds through the MPE contract. The actual fund transfer is performed via CLI commands, not through the HaaS interface. Wait 2-3 minutes after activation before attempting to claim funds.

Payment and Billing

Subscription Model

HaaS operates on a monthly subscription basis paid in FET tokens:

  • Payment is required upfront for each month
  • The daemon automatically becomes unavailable when the subscription expires
  • You can top up at any time to extend the expiry date
  • Multiple daemons require separate subscriptions

Important Payment Notes

Subscription Management:

  • Monitor your daemon's expiry date in the dashboard
  • Top up before expiry to maintain continuous service
  • Expired daemons enter DOWN status and stop processing requests
  • When you top up after expiration, the daemon restarts and the new subscription period begins from the moment of payment

Fund Management:

  • Service call payments accumulate in payment channels on the MPE contract
  • When your subscription expires, use Run For Claiming to temporarily activate the daemon if you need to withdraw funds via CLI
  • Unclaimed funds remain in payment channels and can be accessed using the claiming feature