# Introducing DistributeAI

The world's distributed AI supercomputer.

### About DistributeAI

Welcome to distribute.ai, where we are redefining the landscape of AI compute and inference through innovation and decentralization. Our mission is to empower both business and consumers through collecting and connecting them with the largest network of decentralized compute.&#x20;

#### AI Inference

Users can quickly and efficiently access top models across LLM's, Image gens, and other AI tools at their fingertips through our DistributeAI platform. As open-source models continue to improve at a rapid pace, our decentralized network allows DistributeAI to continue providing inference at scale with frequent updates to our offerings for consumers.&#x20;

#### Providing Compute

Through our browser extension and desktop run-time, users can quickly onboard, schedule, and provide compute at their convenience without any barriers or continued maintenance. Simply signup, install, and begin contributing to the largest decentralized compute network.&#x20;

#### Developer Access

For developers, accessing cost-effective compute resources is essential for entering the AI space. DistributeAI offers enterprise-grade APIs supported by a robust network, reducing barriers to AI development and deployment.&#x20;

#### Our Vision

Decentralized compute and inference in their current form are fundamentally broken. Compute needs to be easier to provide and inference needs to be more agile and freely available. At DistributeAI, we are distinctly focused on creating the easiest onboarding and inference platform available.&#x20;

<br>


# FAQ

This is a list of frequently asked questions we see from the community.

## Q: Why are my credits decreasing?

A: Credits cannot decrease. By providing compute and being connected your credits will always go up. What may decrease or vary is the amount of credits earned in a certain timeframe and displayed on the [statistics ](https://dashboard.oasis.ai/provider/statistics)page. The default timeframe is 7 days, which compares it against the previous 7 days. So no, credits do not and cannot decrease, you just may earn more or less on a weekly basis.&#x20;

## Q: Why can't I claim a discord task on the dashboard

A: You must bind your Discord account before claiming. Head over to <https://dashboard.oasis.ai/settings/security> and bind your Discord account before claiming the task.

## Q: How many nodes can I run on an account?

Currently we allow up to 100 nodes per account. This means you can place our software on 100 unique devices per account. Each device must have it's own GPU.&#x20;

## Q: What does the error Connection failed mean?

A: Please log in to the dashboard using Discord before claiming your reward. Log out of the dashboard, and sign in again using the 'Login via Discord' option

## Q: Why does my provider only show X credits when I have more total?

A: Each provider earns credits independent of your DistributeAI account. When you view credits on a certain provider, it only shows the amount that specific provider (Extension or Desktop App) has earned. To view your total credits, you need to look at the [credits ](https://dashboard.oasis.ai/provider/credits)tab on the dashboard.&#x20;

## Q: Can I connect multiple devices on one IP?

A: Absolutely, many people have multiple computers in their household. We recommend using one IP for multiple devices if possible as using vpn's etc. only cause latency issues.&#x20;

## Q: Can I run the extension and desktop app on the same device?

A: Yes! We recommend running both for fill in any gaps if one were to disconnect.

## Q: Why did I not earn credits even though I was connected?

A: This can occur for a few different reasons. Most likely, your network disconnected or computer went to sleep which caused an intermittent disconnect. Another possible cause is we had downtime for a planned update. Typically intermittent disconnects like this are not a major issue and shouldn't be of concern. If there's an extended loss of connection make sure your settings are correct, and that you've reconnected all your providers.&#x20;

## Q: Why is it saying failed to verify on a dashboard task?

A: Sometimes it takes time for our system to recognize you've completed a task. Additionally, some tasks such as discord based actions are being updated for known issues. If you're not credited but have completed the task, we will automatically credit your account in the near future.&#x20;

## Q: Should I worry about sybil's using multiple accounts or spoofing hardware or referrals?

A: No, we are inherently a proof of work network so anyone who is running non-authentic accounts or software will be removed during our credit verification period.&#x20;

## Q: How do I edit the scheduler on my providers and other settings?

A: We've moved the settings page on providers to our dashboard, click the 3 dots next to the provider to edit these settings.&#x20;

## Q: My dashboard is not loading properly or showing a blank screen, how do i fix?

A: Clear your browser cache, and relogin to the dashboard.&#x20;

## Q: What if I don't have a server/how do i create a server?

A: <https://support.discord.com/hc/en-us/articles/204849977-How-do-I-create-a-server>


# Tokenomics

<figure><img src="/files/oXJ6Yf5inaumWGLm8Lu6" alt=""><figcaption></figcaption></figure>


# Important Addresses

{% content-ref url="/pages/rTEGSp4T3jKH76n8lWsG" %}
[Multi Sigs and Escrow](/distribute-for-usddis/important-addresses/multi-sigs-and-escrow)
{% endcontent-ref %}

{% content-ref url="/pages/BCL9GC3s8fLKXKz9jUuk" %}
[Mint Address](/distribute-for-usddis/important-addresses/mint-address)
{% endcontent-ref %}


# Mint Address

Mint Address: 2AEU9yWk3dEGnVwRaKv4div5TarC4dn7axFLyz6zG4Pf


# Multi Sigs and Escrow

In order to fairly distribute and safely store $DIS, we are using vesting contracts and multi signatory wallets. It is important to note which contracts / addresses and the purpose they serve.

* Liquidity Multi Sig
  * Vault Address: 8ExkZcutpGMYLLJbQYCWTShHkLvjgTrk7GKgNAnk3Jag&#x20;
  * Holding remaining 50% of liquidity to be split between CEX partners and market makers.
* Investors / Foundation  Multi Sig (Depositor To Escrow)
  * Vault Address: DbxY6bxk26ZkxYgPwqMuk93x5XtkbsBUtz5CqUwYjWEj
* Investors / Foundation Escrow&#x20;
  * Vault Address: 7MTiWyDsjNYDWXmZ3J331bz6zwJrJ416ipR8oif42q5D
* Presale / Airdrop Multi Sig (Depositor To Presale / Airdrop Escrow)
  * Vault Address: Bbe1DPB5qD2G2zBXMS6vR56vUsmtwVoaEyYjzbHuSWo8
* Presale / Airdrop Escrow
  * Vault Address: 2DoQ7aikEF3GS1AGp7fBqnCTGmoLV8vHiJDmRLZEjyqM
* Platform Incentives Multi Sig
  * Vault Address: E5WchutHdCY8besK1gFg8Bc5AzXssZeDPKrNGWWemiiP


# DIS Alpha Airdrop

The $DIS Alpha Airdrop rewards early contributors to the distribute.ai network who provided real compute power and completed verifiable AI workloads. Eligibility was strictly limited to users who actively ran provider nodes and completed jobs, ensuring authenticity and excluding bots or idle installs. Contributors were segmented by hardware quality, with higher-performance GPU users receiving 80% of the allocation and the rest receiving 20%, all based on a compressed, fairness-focused distribution curve. This marks both a thank-you and a strategic step in aligning the token economy with those who make distributed AI possible.

Please see our [blog post](https://distribute.ai/blog/the-dis-airdrop-alpha-rewarding-real-contributors) for full details on the $DIS Alpha Airdrop.&#x20;

{% content-ref url="/pages/5jdAzONOf3aHwTMpG4ma" %}
[DIS Beta Rewards Phase](/dis-beta-rewards-phase)
{% endcontent-ref %}


# DIS Beta Rewards Phase

#### The Distribute.ai Beta Rewards Phase has begun! Read full details on our blog [here](https://distribute.ai/blog/the-distribute-ai-beta-rewards-phase).


# Enterprise Inference API

A guide to interacting with our enterprise inference API.

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

### Introduction

To utilize the API, you have the flexibility to choose the request client that best suits your needs. Whether you prefer using command-line tools like `curl`, specialized API clients like Postman, or integrating within your application through libraries in programming languages such as Python's `requests` or JavaScript's `axios`, you can seamlessly send HTTP requests and interact with the API. By selecting a client that aligns with your workflow and project requirements, you can efficiently manage API calls, parse responses, and handle errors, ensuring that you maximize the API's potential in your implementation.

Officially distributed SDK's coming soon.

{% content-ref url="/pages/Q4ZHT6pjAmwgSBOstAlp" %}
[Authentication](/distribute-for-enterprise/enterprise-inference-api/authentication)
{% endcontent-ref %}

{% content-ref url="/pages/xaCtlh2vJbw2b8F35dLo" %}
[OpenAI Compatible API](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api)
{% endcontent-ref %}

{% content-ref url="/pages/ziuoWN77Z1pqy63WlIUP" %}
[Async API](/distribute-for-enterprise/enterprise-inference-api/async-api)
{% endcontent-ref %}


# Authentication

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

### Create an API key

Oasis uses API keys for authentication. Users are allowed to create 1 API key per account. Keep in mind that API keys are a secret. Never share your API key or expose it in any client side environment.

Visit <https://dashboard.distribute.ai/enterprise/api-keys> to create an api key.\
\
Base Url:

```
https://api.distribute.ai/
```

All API requests should include your API key in an `Authorization` HTTP header as follows:

```
Authorization: <APIKEY>
```


# Billing

Distribute.ai bills users through a prepaid credit balance system, making it simple and predictable to manage costs. Users link their default payment method via Stripe and fund their platform balance in advance. Each AI inference request deducts credits from this balance, enabling precise, usage-based billing without surprises. To ensure seamless operation, users can optionally enable auto top-up, which automatically replenishes their balance when it drops below a configurable threshold—eliminating downtime and maintaining uninterrupted access to distributed AI compute. To read more about how we bill to save you money, click the links below.


# Text To Text

Billing for text-to-text language models on Distribute.ai is based on a fixed rate per token, ensuring transparent and usage-based pricing. Each request incurs charges for both input and output tokens. **Input tokens** are the pieces of text you send into the model—this includes your prompt, instructions, or conversation history. **Output tokens** are the text generated in response by the model. A "token" can be as short as one character or as long as a word . Users are only charged for what they use, and rates are clearly defined for both input and output to help estimate costs before making a request.

| Model         | Input Token Cost | Output Token Cost |
| ------------- | ---------------- | ----------------- |
| Llama-3.1 8B  | $0.1 / 1M Tokens | $0.16 / 1M Tokens |
| Llama-3.3 70B | $0.7 / 1M Tokens | $0.8 / 1M Tokens  |

Stay tuned for more language models.&#x20;

Pricing subject to change.


# Text To Image

Distribute.ai bills text-to-image generations based on a per-megabyte step pricing model, giving users highly granular control over how much they pay for each image. Instead of flat rates, users are charged according to the number of generation steps and the output image size—both of which directly impact the compute duration required. Fewer steps and smaller image dimensions yield faster, lower-cost generations ideal for quick previews or lightweight use cases. Conversely, users can opt for more steps and larger outputs when they need higher fidelity, paying slightly more for enhanced quality.&#x20;

### Important Notes

* 1 megabyte-step  = 1 generated step on a 1024x1024 image.

{% tabs %}
{% tab title="Flux.1 \[dev]" %}

| Steps         | 256 x 256 | 512 x 512 | 768 × 768 |
| ------------- | --------- | --------- | --------- |
| 10            | $0.0008   | $0.003    | $0.0068   |
| 20            | $0.0016   | $0.006    | $0.0136   |
| 30            | $0.0023   | $0.009    | $0.0204   |
| {% endtab %}  |           |           |           |
| {% endtabs %} |           |           |           |

Stay tuned for more image models.

Pricing subject to change.


# Text To Speech

Users are billed for text-to-speech (TTS) based on the duration of the generated audio, measured in seconds. Billing starts at a minimum of one second per request, ensuring a fair and consistent model that reflects actual usage while covering system overhead. This per-second approach allows users to scale efficiently and only pay for the audio they generate, making it both transparent and predictable.

| Model      | Audio Second Cost |
| ---------- | ----------------- |
| Chatterbox | $0.0030 / Second  |

Stay tuned for more speech models.

Pricing subject to change.


# OpenAI Compatible API

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

The OpenAI-Compatible Inference API offers seamless drop-in replacements for OpenAI’s core endpoints, including chat completions, image generations, and more. Designed for developers familiar with the OpenAI API, it mirrors the structure, parameters, and behavior of endpoints like `/v1/chat/completions` and `/v1/images/generations`, enabling effortless integration without rewriting your codebase. This compatibility layer allows you to switch to a decentralized or self-hosted backend while maintaining full interoperability with existing OpenAI-compatible tools and SDKs.

{% content-ref url="/pages/aQKd0onGds67iVs639GL" %}
[Images](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/images)
{% endcontent-ref %}

{% content-ref url="/pages/EfooG2k9jB13cAcQKNXX" %}
[Chat](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/chat)
{% endcontent-ref %}

{% content-ref url="/pages/SboGHHNO115vj7lnQOG9" %}
[Audio](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/audio)
{% endcontent-ref %}


# Images

The OpenAI-compatible image generation endpoint allows developers to generate images from natural language prompts using powerful open-source models like Flux.1 \[dev]. This endpoint mirrors the structure of OpenAI’s `/v1/images/generations` API, making integration seamless for existing OpenAI-based applications. Simply provide a prompt, and the API will return a link to the generated image. Ideal for building creative tools, content generation pipelines, and more.

{% content-ref url="/pages/gtqxEReZ0vNsqtqcxK1u" %}
[Generations](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/images/generations)
{% endcontent-ref %}


# Generations

## POST /v1/images/generations

> Generate an image synchronously using the provided input and model parameters.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"images"}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/v1/images/generations":{"post":{"operationId":"generate","tags":["images"],"description":"Generate an image synchronously using the provided input and model parameters.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"n":{"type":"number","enum":[1],"default":1},"seed":{"type":"number","default":934908},"size":{"type":"string","pattern":"^([1-9]\\d{0,2}|1024)x([1-9]\\d{0,2}|1024)$","default":"768x768"},"style":{"type":"string"},"model":{"type":"string","enum":["Flux.1 [dev]"]},"stream":{"type":"boolean","default":false},"prompt":{"type":"string","maxLength":1000},"guidance_scale":{"type":"number","minimum":1,"maximum":20,"default":6},"inference_steps":{"type":"number","minimum":1,"maximum":30,"default":16},"response_format":{"type":"string","enum":["url","b64_json"],"default":"url"}},"required":["model","prompt"],"additionalProperties":false,"description":"Standard OpenAI image generation response containing the generated image and metadata."}}},"required":true,"description":"Standard OpenAI image generation response containing the generated image and metadata."},"responses":{"200":{"description":"Returns the generated image url or base64 string.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"b64_json":{"type":"string"},"revised_prompt":{"type":"string"}},"required":["revised_prompt"],"additionalProperties":false},"description":"Returns the generated image url or base64 string."}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Chat

The OpenAI-compatible chat completion endpoint enables interactive conversations with large language models using the familiar `/v1/chat/completions` format. Designed for drop-in compatibility with OpenAI’s API, it supports role-based messages (`system`, `user`, `assistant`), streaming responses, and model-specific parameters like `temperature`,  and  `top_p`. Perfect for building chatbots, assistants, or any LLM-powered applications without needing to change your existing OpenAI integration.

{% content-ref url="/pages/gP8StsiZ6KgMUqrPTCW8" %}
[Completions](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/chat/completions)
{% endcontent-ref %}


# Completions

## POST /v1/chat/completions

> Generate a chat completion synchronously using the provided messages and model parameters.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"chat.completions"}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/v1/chat/completions":{"post":{"operationId":"chatCompletionsCreate","tags":["chat.completions"],"description":"Generate a chat completion synchronously using the provided messages and model parameters.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"role":{"type":"string","enum":["system"]},"content":{"type":"string"},"name":{"type":"string"}},"required":["role","content"],"additionalProperties":false},{"type":"object","properties":{"role":{"type":"string","enum":["user"]},"content":{"type":"string"},"name":{"type":"string"}},"required":["role","content"],"additionalProperties":false},{"type":"object","properties":{"role":{"type":"string","enum":["assistant"]},"content":{"type":"string"},"name":{"type":"string"},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"arguments":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"}},"required":["arguments","name"],"additionalProperties":false}},"required":["id","type","function"],"additionalProperties":false}}},"required":["role","tool_calls"],"additionalProperties":false},{"type":"object","properties":{"role":{"type":"string","enum":["tool"]},"content":{"type":"string"},"tool_call_id":{"type":"string"}},"required":["role","content","tool_call_id"],"additionalProperties":false}]}},"model":{"type":"string","enum":["Llama-3.1 8B","Llama-3.3 70B"]},"reasoning_effort":{"type":"string","enum":["low","medium","high"],"default":"medium"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2,"default":0},"max_completion_tokens":{"type":"number","minimum":-1,"maximum":600,"default":128},"n":{"type":"number","enum":[1],"default":1},"modalities":{"type":"array","items":{"type":"string","enum":["text"]},"default":["text"]},"presence_penalty":{"type":"number","minimum":-2,"maximum":2,"default":0},"seed":{"type":"number","default":106948},"service_tier":{"type":"string","enum":["auto","default"],"default":"default"},"stop":{"type":"array","items":{"type":"string"}},"stream":{"type":"boolean","default":false},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}},"additionalProperties":false},"temperature":{"type":"number","minimum":0,"maximum":2,"default":1},"top_p":{"type":"number","minimum":0,"maximum":1,"default":1},"tools":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"description":{"type":"string"},"name":{"type":"string","maxLength":64},"parameters":{"type":"object","additionalProperties":{"type":"string"}},"strict":{"type":"boolean","default":false}},"required":["name"],"additionalProperties":false}},"required":["type","function"],"additionalProperties":false}},"tool_choice":{"anyOf":[{"type":"string","enum":["none","auto","required"]},{"type":"object","properties":{"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"name":{"type":"string","maxLength":64}},"required":["name"],"additionalProperties":false}},"required":["type","function"],"additionalProperties":false}]},"parallel_tool_calls":{"type":"boolean","default":true}},"required":["messages","model"],"additionalProperties":false,"description":"Standard OpenAI chat completion response containing the generated message and metadata."}}},"required":true,"description":"Standard OpenAI chat completion response containing the generated message and metadata."},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"finish_reason":{"type":"string","enum":["stop","tool_calls"]},"index":{"type":"number","minimum":0,"maximum":1},"message":{"type":"object","properties":{"content":{"type":"string"},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}},"required":["name","arguments"],"additionalProperties":false}},"required":["id","type","function"],"additionalProperties":false}},"role":{"type":"string","enum":["system","user","assistant"]},"name":{"type":"string"}},"required":["content","role"],"additionalProperties":false}},"required":["finish_reason","index","message"],"additionalProperties":false}},"created":{"type":"number"},"model":{"type":"string","enum":["Llama-3.1 8B","Llama-3.3 70B"]},"service_tier":{"type":"string"},"system_fingerprint":{"type":"string"},"object":{"type":"string","enum":["chat.completion"]},"usage":{"type":"object","properties":{"completion_tokens":{"type":"number"},"prompt_tokens":{"type":"number"},"total_tokens":{"type":"number"}},"required":["completion_tokens","prompt_tokens","total_tokens"],"additionalProperties":false}},"required":["id","choices","created","model","system_fingerprint","object","usage"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Audio

Distribute.ai's audio routes provide OpenAI-compatible endpoints for tasks such as text-to-speech (TTS), speech-to-text (STT), and audio generation. These routes follow the same structure and authentication model as OpenAI’s API, making integration seamless for developers already familiar with `/v1/audio/speech` or `/v1/audio/transcriptions`. Responses are streamed or returned as base64-encoded audio files, and support configurable parameters like voice, and model selection. Built on distribute.ai's distributed inference network, these routes offer scalable, low-latency audio generation backed by real-world GPU providers.

{% content-ref url="/pages/9wTN9SLpXxa7RE0znaIP" %}
[Speech](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/audio/speech)
{% endcontent-ref %}


# Speech

## POST /v1/audio/speech

> Generate a speech completion synchronously using the provided input text and model parameters.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"audio.speech"}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/v1/audio/speech":{"post":{"operationId":"audioSpeechCreate","tags":["audio.speech"],"description":"Generate a speech completion synchronously using the provided input text and model parameters.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["Chatterbox"]},"stream":{"type":"boolean","default":false},"input":{"type":"string","minLength":2,"maxLength":4096},"voice":{"anyOf":[{"type":"string","enum":["leo","nora"],"default":"leo"},{"type":"string"}],"description":"One of default voices: leo, nora or a file_id with purpose voice."},"temperature":{"type":"number","minimum":0,"maximum":1,"default":0.8},"exaggeration":{"type":"number","minimum":0,"maximum":1,"default":0.5},"cfg_weight":{"type":"number","minimum":0,"maximum":1,"default":0.5},"response_format":{"type":"string","enum":["wav"],"default":"wav"}},"required":["model","input"],"additionalProperties":false,"description":"Standard OpenAI speech generation response containing the generated speech and metadata."}}},"required":true,"description":"Standard OpenAI speech generation response containing the generated speech and metadata."},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"}},"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Async API

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

The Asynchronous Inference API provides a unified interface for submitting and managing long-running AI tasks—such as chat completions, image generations, and other model inferences—without blocking your application. Tasks are queued and processed in the background, allowing you to fetch results later using a unique task ID. This architecture is ideal for scaling inference workloads, handling variable latency, and integrating AI into event-driven or serverless systems. Whether you're running compute-intensive models or managing bursty traffic, the async API ensures flexibility, reliability, and control across all supported task types.

{% content-ref url="/pages/EfooG2k9jB13cAcQKNXX" %}
[Chat](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/chat)
{% endcontent-ref %}

{% content-ref url="/pages/aQKd0onGds67iVs639GL" %}
[Images](/distribute-for-enterprise/enterprise-inference-api/openai-compatible-api/images)
{% endcontent-ref %}

{% content-ref url="/pages/iP1H38uKbBYNNBLm5l6E" %}
[Speech](/distribute-for-enterprise/enterprise-inference-api/async-api/speech)
{% endcontent-ref %}


# Chat

The Asynchronous Chat Completion API allows you to submit chat-based LLM tasks that are processed in the background and retrieved later. Ideal for high-latency or large-scale workloads, this custom implementation lets you queue chat requests via a `POST` endpoint and retrieve results using a unique task ID. It supports robust job tracking, delayed responses, and retry-safe workflows—making it well-suited for batch processing, long-running prompts, and serverless environments where real-time responses aren't required.

{% content-ref url="/pages/FqXZBVvFlsSdrEgmZy9Y" %}
[Chat Create](/distribute-for-enterprise/enterprise-inference-api/async-api/chat/chat-create)
{% endcontent-ref %}

{% content-ref url="/pages/fLEF8XhUOyUVSt1K4Bnw" %}
[Chat Result](/distribute-for-enterprise/enterprise-inference-api/async-api/chat/chat-result)
{% endcontent-ref %}


# Chat Create

Start a conversation with an LLM using existing OpenAI schemas.

## POST /async/chat/create

> Queue a new asynchronous chat completion task for background processing and later retrieval.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"async.chat","description":"Asynchronous task queuing operations."}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/async/chat/create":{"post":{"operationId":"asyncChatCreate","tags":["async.chat"],"description":"Queue a new asynchronous chat completion task for background processing and later retrieval.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"role":{"type":"string","enum":["system"]},"content":{"type":"string"},"name":{"type":"string"}},"required":["role","content"],"additionalProperties":false},{"type":"object","properties":{"role":{"type":"string","enum":["user"]},"content":{"type":"string"},"name":{"type":"string"}},"required":["role","content"],"additionalProperties":false},{"type":"object","properties":{"role":{"type":"string","enum":["assistant"]},"content":{"type":"string"},"name":{"type":"string"},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"arguments":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"}},"required":["arguments","name"],"additionalProperties":false}},"required":["id","type","function"],"additionalProperties":false}}},"required":["role","tool_calls"],"additionalProperties":false},{"type":"object","properties":{"role":{"type":"string","enum":["tool"]},"content":{"type":"string"},"tool_call_id":{"type":"string"}},"required":["role","content","tool_call_id"],"additionalProperties":false}]}},"model":{"type":"string","enum":["Llama-3.1 8B","Llama-3.3 70B"]},"reasoning_effort":{"type":"string","enum":["low","medium","high"],"default":"medium"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2,"default":0},"max_completion_tokens":{"type":"number","minimum":-1,"maximum":600,"default":128},"n":{"type":"number","enum":[1],"default":1},"modalities":{"type":"array","items":{"type":"string","enum":["text"]},"default":["text"]},"presence_penalty":{"type":"number","minimum":-2,"maximum":2,"default":0},"seed":{"type":"number","default":591256},"service_tier":{"type":"string","enum":["auto","default"],"default":"default"},"stop":{"type":"array","items":{"type":"string"}},"stream":{"type":"boolean","default":false},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}},"additionalProperties":false},"temperature":{"type":"number","minimum":0,"maximum":2,"default":1},"top_p":{"type":"number","minimum":0,"maximum":1,"default":1},"tools":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"description":{"type":"string"},"name":{"type":"string","maxLength":64},"parameters":{"type":"object","additionalProperties":{"type":"string"}},"strict":{"type":"boolean","default":false}},"required":["name"],"additionalProperties":false}},"required":["type","function"],"additionalProperties":false}},"tool_choice":{"anyOf":[{"type":"string","enum":["none","auto","required"]},{"type":"object","properties":{"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"name":{"type":"string","maxLength":64}},"required":["name"],"additionalProperties":false}},"required":["type","function"],"additionalProperties":false}]},"parallel_tool_calls":{"type":"boolean","default":true}},"required":["messages","model"],"additionalProperties":false}}},"required":true},"responses":{"200":{"description":"Returns a unique ID for the asynchronous chat task, used to retrieve the generated result once processing is complete.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false,"description":"Returns a unique ID for the asynchronous chat task, used to retrieve the generated result once processing is complete."}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Chat Result

Retrieve the status/result of an async chat inference request.

## POST /async/chat/result

> Retrieve an asynchronous chat task status or final result.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"async.chat","description":"Asynchronous task queuing operations."}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/async/chat/result":{"post":{"operationId":"asyncChatResult","tags":["async.chat"],"description":"Retrieve an asynchronous chat task status or final result.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"}},"required":["id"],"additionalProperties":false}}},"required":true},"responses":{"200":{"description":"Standard OpenAI chat completion response containing the generated message and metadata.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["CREATED","QUEUED","POSTPONED","ASSIGNED_CONNECTIONS","PROCESSING","COMPLETED","ERROR"]},"created":{"type":"number"},"finished":{"type":"number"},"model":{"type":"string"},"service_tier":{"type":"string"},"usage":{"type":"object","properties":{"completion_tokens":{"type":"number"},"prompt_tokens":{"type":"number"},"total_tokens":{"type":"number"}},"required":["completion_tokens","prompt_tokens","total_tokens"],"additionalProperties":false},"choices":{"type":"array","items":{"type":"object","properties":{"finish_reason":{"type":"string","enum":["stop","tool_calls"]},"index":{"type":"number","minimum":0,"maximum":1},"message":{"type":"object","properties":{"content":{"type":"string"},"tool_calls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["function"]},"function":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"string"}},"required":["name","arguments"],"additionalProperties":false}},"required":["id","type","function"],"additionalProperties":false}},"role":{"type":"string","enum":["system","user","assistant","tool"]},"name":{"type":"string"}},"required":["content","role"],"additionalProperties":false}},"required":["finish_reason","index","message"],"additionalProperties":false}}},"required":["status","created","model","choices"],"additionalProperties":false,"description":"Standard OpenAI chat completion response containing the generated message and metadata."}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Images

The Asynchronous Image Generation API enables non-blocking image creation from text prompts by allowing tasks to be queued and retrieved later. Submit a generation request via `POST`, and receive a task ID to poll or fetch the result once it's ready. This is ideal for high-throughput applications, user-submitted batch jobs, or environments where immediate responses aren’t practical. It ensures scalability, reliability, and flexibility for integrating advanced image generation into your workflows.

{% content-ref url="/pages/tq3olgjQlI23gF9dgBTO" %}
[Images Create](/distribute-for-enterprise/enterprise-inference-api/async-api/images/images-create)
{% endcontent-ref %}

{% content-ref url="/pages/G1QTWR8lBrL8rP6R8ECR" %}
[Images Result](/distribute-for-enterprise/enterprise-inference-api/async-api/images/images-result)
{% endcontent-ref %}


# Images Create

Start an image creation using existing OpenAI schemas.

{% openapi src="/files/wsVjisJqkUQyTyofslG0" path="/async/images/create" method="post" %}
[openapi copy.json](https://1838060091-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlTLb3kjA1gMXcHxXprP8%2Fuploads%2FMwaMPQ7zZnXsHWYoUNvo%2Fopenapi%20copy.json?alt=media)
{% endopenapi %}


# Images Result

Retrieve the status/result of an async image inference request.

{% openapi src="/files/wsVjisJqkUQyTyofslG0" path="/async/images/result" method="post" %}
[openapi copy.json](https://1838060091-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlTLb3kjA1gMXcHxXprP8%2Fuploads%2FMwaMPQ7zZnXsHWYoUNvo%2Fopenapi%20copy.json?alt=media)
{% endopenapi %}


# Speech


# Speech Create

## POST /async/speech/create

> Queue a new asynchronous speech generation task for background processing and later retrieval.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"async.speech","description":"Asynchronous task queuing operations."}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/async/speech/create":{"post":{"operationId":"asyncSpeechCreate","tags":["async.speech"],"description":"Queue a new asynchronous speech generation task for background processing and later retrieval.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["Chatterbox"]},"input":{"type":"string","minLength":2,"maxLength":4096},"voice":{"anyOf":[{"type":"string","enum":["leo","nora"],"default":"leo"},{"type":"string"}],"description":"One of default voices: leo, nora or a file_id with purpose voice."},"stream":{"type":"boolean","default":false},"temperature":{"type":"number","minimum":0,"maximum":1,"default":0.8},"exaggeration":{"type":"number","minimum":0,"maximum":1,"default":0.5},"cfg_weight":{"type":"number","minimum":0,"maximum":1,"default":0.5}},"required":["model","input"],"additionalProperties":false,"description":"Returns a unique ID for the asynchronous speech task, used to retrieve the generated result once processing is complete."}}},"required":true,"description":"Returns a unique ID for the asynchronous speech task, used to retrieve the generated result once processing is complete."},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Speech Result

## POST /async/speech/result

> Retrieve an asynchronous speech task status or final result.

```json
{"openapi":"3.0.3","info":{"title":"Distribute.AI API","version":"1.0.0"},"tags":[{"name":"async.speech","description":"Asynchronous task queuing operations."}],"servers":[{"url":"https://api.distribute.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"authorization"}}},"paths":{"/async/speech/result":{"post":{"operationId":"asyncSpeechResult","tags":["async.speech"],"description":"Retrieve an asynchronous speech task status or final result.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"}},"required":["id"],"additionalProperties":false,"description":"Standard OpenAI speech generation response containing the generated speech and metadata."}}},"required":true,"description":"Standard OpenAI speech generation response containing the generated speech and metadata."},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["CREATED","QUEUED","POSTPONED","ASSIGNED_CONNECTIONS","PROCESSING","COMPLETED","ERROR"]},"created":{"type":"number"},"finished":{"type":"number"},"model":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"}},"additionalProperties":false}}},"required":["id","status","created","model","results"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}}}}}}}
```


# Enterprise Compute Providers

If you are an enterprise compute provider interested in partnering with us as an enterprise compute partner, please reach out to us at <contact@distribute.ai> for more information.


# Chrome Extension

The distribute.ai Chrome extension transforms your web browser into a node on the world’s largest distributed AI supercomputer. With just a few clicks, anyone can start earning rewards by contributing their device’s idle compute power—no technical setup or external software required. Powered by WebGPU, the extension securely runs lightweight AI inference tasks directly in-browser, enabling seamless participation in the network while maintaining user control and privacy. It’s the easiest on-ramp to monetizing your hardware and supporting the future of decentralized AI.

{% content-ref url="/pages/fBJk1dHeJniZMCIrcZtn" %}
[Installing Extension](/distribute-for-inference-providers/chrome-extension/installing-extension)
{% endcontent-ref %}

{% content-ref url="/pages/XFlHlPa5AkueXZ4ApWT4" %}
[Updating the Extension](/distribute-for-inference-providers/chrome-extension/updating-the-extension)
{% endcontent-ref %}


# Installing Extension

How to install the DistributeAI Browser Extension

1. Head to <https://chromewebstore.google.com/detail/oasisai/knhbjeinoabfecakfppapfgdhcpnekmm>
2. &#x20;Click "Add to Chrome"
3. Click the Extension and "Sign In."
4. Create your account and verify your email.&#x20;
5. Enable the three requires chrome flags. The extension will link you directly to what you need to change.&#x20;
6. Done! You're now able to provide compute to the Oasis AI network.&#x20;

<figure><img src="/files/Hiffm1Mt01PO90exax0J" alt="" width="323"><figcaption></figcaption></figure>

{% content-ref url="/pages/HI01JrVM6LQ8HR6a5vwX" %}
[Enabling Chrome Flags](/distribute-for-inference-providers/chrome-extension/installing-extension/enabling-chrome-flags)
{% endcontent-ref %}

{% content-ref url="/pages/kQpi29UXbZFQ7GrwxELE" %}
[Chrome GPU Setup Guide](/distribute-for-inference-providers/chrome-extension/installing-extension/chrome-gpu-setup-guide)
{% endcontent-ref %}


# Enabling Chrome Flags

To provide compute, certain browser features need to be enabled.

<figure><img src="/files/e9g8zm8q0VJMguksTPru" alt=""><figcaption><p>Required browser features</p></figcaption></figure>

Upon installing our extension, you will be prompted to enable certain browser features. These features are necessary to provide compute to our network.&#x20;

1. **Javascript Integration (enable-experimental-webassembly-jsp**&#x69;**):**

   The JavaScript Promise Integration (JSPI) API allows a WebAssembly application to more efficiently communicate with lower level system APIs using asynchronous calls rather than synchronous callbacks. This allows for more throughput and lower latency when running inference.
2. **Experimental WebAssembly (enable-experimental-webassembly-features):**

   WebAssembly pointers are limited to 32-bit integers, restricting heap sizes to 4GB. This flag expands the pointer size to 64-bits, allowing for less computation overhead and loading larger possible model sizes.
3. **Unsafe WebGPU (enable-unsafe-webgpu + temporary-unexpire-flags-m130):**

   Enables support for bleeding edge WebGPU features and drivers which aren't fully stable. This allows more devices to contribute to inference, and provides broader support for available model types.

While these flags are not strictly required for all browser based AI/ML inference in general, they are required to run the larger models that the distribute.ai network supports. Additionally, these flags allow the distribute.ai Chrome Extension to take full advantage of your hardware.

These flags do not provide an immediate security vulnerability as the distribute.ai extension does not run any unverified code. Additionally, any browser based inference that supports large models and high throughput inference will require similar features due to the underlying implementations.

In future chromium based browsers releases, these flags will not be required as the features that are currently experimental are moved into final releases.&#x20;

If you're having trouble enabling the Unsafe WebGPU flag, there could be a variety of issues with either Chrome or your system. You can try a few things to resolve the issue:

1. **For Linux users, set the correct command line flags when you launch Chrome:**\
   Due to the experimental nature of WebGPU on Linux, Chrome currently doesn't allow you to permanently enable WebGPU through the flags. You'll need to ensure your drivers support Vulkan, and then launch Chrome with these flags:\
   `--enable-unsafe-webgpu`\
   `--enable-features=Vulkan`\
   If Chrome crashes or fails to launch, your distribution or hardware may not be supported.
2. **Ensure you restart Chrome after changing any flags:**\
   Chrome requires users to fully restart their browser for changes to be reflected in their flags. If the extension is complaining, try setting the flag and then restarting your browser.
3. **Unexpire M130 Flags:**\
   Recent versions of Chrome have deprecated some flags needed to make WebGPU function properly. You can enable the **Temporarily unexpire M130 flags** option in`chrome://flags/#temporary-unexpire-flags-m130` to work around this until future Chrome updates.
4. **Check if you have Hardware Acceleration enabled in Chrome:**\
   For WebGPU to function properly, Chrome requires that hardware acceleration be available. Check to make sure you enable the option called "Use graphics acceleration when available" or "Use hardware acceleration when available" inside `chrome://settings/system`.
5. **Check if your GPU drivers are up-to-date:**\
   Since WebGPU is fairly new technology, the newest GPU drivers are required. Make sure your drivers are correct for your GPU, and up-to-date. Check our [Chrome GPU Setup Guide](/distribute-for-inference-providers/chrome-extension/installing-extension/chrome-gpu-setup-guide) to learn more.

If you've tried these and you're still encountering problems, your platform may be unsupported through Chrome at the time being.


# Chrome GPU Setup Guide

Any devices which contain an integrated GPU in addition to an external GPU (Laptops and some desktop computers) should follow these instructions.

<details>

<summary>Select the GPU Chrome Uses</summary>

1. Press the Windows Key and type 'Graphics Settings' and select 'Graphics Settings'.
2. Select 'Browse' and navigate to to directory where Chrome was installed. It is usually installed to these directories:\
   &#x20;\- C:\Program Files\Google\Chrome\Application\
   &#x20;\- C:\Program Files (x86)\Google\Chrome\Application
3. Click on 'chrome.exe' and then click 'Add'.
4. Back in Graphics Settings click on 'Google Chrome' and then select 'Options'.
5. Select the 'High Performance' option and click 'Save'.

</details>

<details>

<summary>Ensure GPU Drivers are Updated</summary>

1. Press the Windows Key and type 'Device Manager' and select 'Device Manager'.
2. Find 'Display adapters' and click the dropdown button to the left.
3. Right click on the integrated GPU and select 'Update Driver'.

</details>


# Updating the Extension

How to Update the Chrome Extension:

In order to ensure maximum uptime for optimal efficiency, it is important to update the extension as soon as possible after updates are pushed. We will announce updates on twitter and/or discord.\
\
Navigate to this URL in your Chrome browser: `chrome://extensions/`

\
\
If Developer Mode is not enabled, you are going to want to enable developer mode here:

<figure><img src="/files/LqcOfsVefUxPPjiyH0yJ" alt=""><figcaption><p>Check the "Developer mode" option in the top right of the page.</p></figcaption></figure>

After the drop down appears with the following 3 options, select "Update".

<figure><img src="/files/ll3792h6lKHIXbq3QCVb" alt=""><figcaption><p>Click "Update".</p></figcaption></figure>

The extension should now be updated. After you press update, scroll down to the extension and verify the the version number has been updated to the current version.&#x20;

<figure><img src="/files/3dWtHBhV1DBoFIgtdf9Y" alt=""><figcaption><p>The version number can be found next to the name of the extension, in this image, the version is "0.0.6".</p></figcaption></figure>


# Desktop App

The distribute.ai desktop app is a lightweight, powerful gateway for turning your computer into an AI compute provider. Designed for Windows, macOS, and Linux, the app runs quietly in the background, securely executing AI inference tasks using your CPU or GPU whenever resources are available. With built-in performance controls and automatic updates, it offers a set-it-and-forget-it experience for users who want to earn rewards by contributing to the decentralized AI network. Whether you're a gamer, developer, or casual user, the desktop app makes it easy to join the AI economy and put your machine to work for the future.

{% content-ref url="/pages/LNw3guPqnDbubJYk5CA1" %}
[Installing Desktop App](/distribute-for-inference-providers/desktop-app/installing-desktop-app)
{% endcontent-ref %}

{% content-ref url="/pages/ZyLJ5DXF1FcVG33urb3A" %}
[Desktop App Debugging](/distribute-for-inference-providers/desktop-app/desktop-app-debugging)
{% endcontent-ref %}

{% content-ref url="/pages/2ohGzqwJbdwT0dnqkbbw" %}
[Desktop System Requirements](/distribute-for-inference-providers/desktop-app/desktop-system-requirements)
{% endcontent-ref %}


# Installing Desktop App

How to install the DistributeAI Desktop Runtime

First, head to <https://dashboard.distribute.ai/provider/downloads>. Find the "Distribute for Desktop" section shown below. Select your operating system. If you're on apple, follow this guide to determine whether you should select Mac (Intel), Mac(Apple Silicon) <https://support.apple.com/en-us/116943>.

<figure><img src="/files/eUNENsr3CRUfAzCLEBgb" alt=""><figcaption></figcaption></figure>

#### For Mac Operating Systems

<figure><img src="/files/lSOggpF9k7tpEXIa0zvd" alt=""><figcaption></figcaption></figure>

1. Follow the DistributeAI installer instructions by double clicking the icon in the center.
2. Locate **DistributeAI.app** in your Applications directory.
3. Double-click to launch the application.

#### For Windows Operating Systems

Run the Install.exe file that is downloaded from your web browser. A command window will open. If it closes itself, that means your install is good, and you should open "Distribute AI" from the task bar. If the install fails, it will give you a detailed error message. Try looking through [Desktop App Debugging](/distribute-for-inference-providers/desktop-app/desktop-app-debugging) for help. Please contact our support for additional help if needed.&#x20;

Once the application is open, you should see the pages described by [#connect-your-provider](#connect-your-provider "mention"), if not then go to [Windows Debugging](/distribute-for-inference-providers/desktop-app/desktop-app-debugging/windows-debugging) or contact support.

## Connect your provider

Now that you have the application open, you should see a page like shown below. Here click the "Connect Provider" button. If you are not logged in you will be prompted to.&#x20;

<figure><img src="/files/OAbcY6U7vEkCPoFEUyZY" alt=""><figcaption></figcaption></figure>

You should then see a page like shown below. Here, create a descriptive name for your provider. Don't worry, you can create and delete new providers at any time, and all of your points are saved at the account level.

<figure><img src="/files/36pvwMmT1nA6pnBadGXt" alt=""><figcaption></figcaption></figure>


# Desktop App Debugging

## Architecture

It's important when debugging to understand how the Distribute AI desktop app works. Internally, there is a background service, known as a Daemon, that runs in the background. This Daemon is registered with the operating system to run at startup. This lets us earn you points while using as little performance overhead as possible. The desktop GUI app then talks to this daemon to show your points and configure settings. This architecture also means that the same system is run on Linux servers without a desktop environment.

## Platforms

Depending on your operating system, there are different debugging steps and quirks to be mindful of, follow one of the links to your operating system to learn more:

{% content-ref url="/pages/KLHHPPgKMMplF5MPpQEi" %}
[Windows Debugging](/distribute-for-inference-providers/desktop-app/desktop-app-debugging/windows-debugging)
{% endcontent-ref %}

{% content-ref url="/pages/4SrirchWK00yctsUvKqB" %}
[MacOS Debugging](/distribute-for-inference-providers/desktop-app/desktop-app-debugging/macos-debugging)
{% endcontent-ref %}

{% content-ref url="/pages/r1haI8TlITnKDhYLYr1o" %}
[Linux Debugging](/distribute-for-inference-providers/desktop-app/desktop-app-debugging/linux-debugging)
{% endcontent-ref %}


# Windows Debugging

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

## Background Service Disconnected

<figure><img src="/files/rou4xHZFXdxGi7466TDk" alt=""><figcaption><p>Background Service Disconnected Error</p></figcaption></figure>

### Troubleshooting Background Service Disconnection

If you encounter issues with the background service disconnecting, follow these troubleshooting steps:

1. **Reboot Your Computer**:
   * Sometimes the Distribute AI Daemon service has problems after large system modifications, you can try rebooting your computer to check if this problem resolves itself.
2. **Verify Service Status**:
   * Open the Windows Services management console by typing `services.msc` in the Run dialog opened by `win`+ `r` or searching for "Services" in the windows search.
   * Ensure that the Distribute AI Daemon service is running. If not, right-click and select "Start."

<figure><img src="/files/pbxYlemQvQK7RpwOIcvE" alt=""><figcaption><p>If this error shows up, try reinstalling</p></figcaption></figure>

### Reinstalling

{% hint style="info" %}
This action will delete all data related to your local provider. Don't worry, you'll retain all your earned points, but the displayed number on your desktop will reset to zero when you log back in. To view all your points, go to [https://dashboard.distribute.ai/provider/credits](https://dashboard.staging.distribute.ai/provider/credits)
{% endhint %}

In order to get a completely clean reinstall, it's recommended to do the following steps:

1. Open `%LocalAppData%/distribute.ai` using `Win` + `R` like shown

<div data-full-width="true"><figure><img src="/files/D3WAnb2Y6mwCXjxls5gR" alt=""><figcaption></figcaption></figure></div>

1. Press OK and then delete every file inside that folder
2. Restart your machine
3. Navigate to <https://dashboard.distribute.ai/provider/downloads> to download and install the latest version

### Error: Failed to backup daemon.exe: Access is denied.

This error occurs if you're trying to install the application while the background service is still open.&#x20;

1. Open services by pressing `win` + `r` and entering "services.msc"<br>

   <figure><img src="/files/4tMs7SfAXQYbOFSHYORh" alt=""><figcaption></figcaption></figure>
2. Find Distribute.AI System Service and right click, then press "Stop"

<figure><img src="/files/VmTTjQVUO0JidUpWQLek" alt=""><figcaption></figcaption></figure>

3. Retry the installer. Upon otherwise successful install, you may run into the "Daemon Disconnected" page described in [#troubleshooting-background-service-disconnection](#troubleshooting-background-service-disconnection "mention"). If so, either restart, go through the steps there, or return to the services page and instead select "Start"


# MacOS Debugging

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

## Background Service Disconnected

<figure><img src="/files/r4iPA5IKj5fFMbnUuSHb" alt="" width="563"><figcaption></figcaption></figure>

### Troubleshooting Background Service Disconnection

If you encounter issues with the background service disconnecting, follow these troubleshooting steps:

1. **Reboot Your Computer**:
   * Sometimes the Distribute AI Daemon service has problems after large system modifications, you can try rebooting your computer to check if this problem resolves itself
2. **Verify Service Status**:
   * Open a terminal and type `sudo launchctl list | grep "ai.distribute.daemon"`, if there is no output or the first column contains a `-` character, try reinstalling Distribute AI using the steps below
   * If the first column has a number, try restarting your machine, if that doesn't work, please contact support

### Reinstalling

{% hint style="info" %}
This action will delete all data related to your local provider. Don't worry, you'll retain all your earned points, but the displayed number on your desktop will reset to zero when you log back in. To view all your points, go to [https://dashboard.distribute.ai/provider/credits](https://dashboard.staging.distribute.ai/provider/credits)
{% endhint %}

In order to get a completely clean reinstall, it's recommended to do the following steps:

1. Run `sudo rm /Library/LaunchDaemons/distributeai.plist` in a terminal
2. Run `sudo rm -rf ~/Library/Application\ Support/distribute.ai` in a terminal
3. Restart your machine
4. Navigate to <https://dashboard.distribute.ai/provider/downloads> to download and install the latest version


# Linux Debugging

{% hint style="info" %}
The page is currently being developed. If you experience issues, please contact our support team. Your feedback helps us improve our documentation for everyone.
{% endhint %}

## Background Service Disconnected

### Troubleshooting Background Service Disconnection

If you encounter issues with the background service disconnecting, follow these troubleshooting steps:

1. **Reboot Your Computer**:
   * Sometimes the Distribute AI Daemon service has problems after large system modifications, you can try rebooting your computer to check if this problem resolves itself
2. **Verify Service Status**:
   * Open a terminal and type `sudo systemctl status distributeai.service`, if systemd reports the status could not be found, try reinstalling Distribute AI using the steps below
   * Ensure that the Distribute AI Daemon service is running. If the previous command doesn't report the service as `active (running)`, try running the command `sudo systemctl restart distributeai.service` to start it. If that doesn't work, try reinstalling Distribute AI using the steps below

### Reinstalling

{% hint style="info" %}
This action will delete all data related to your local provider. Don't worry, you'll retain all your earned points, but the displayed number on your desktop will reset to zero when you log back in. To view all your points, go to [https://dashboard.distribute.ai/provider/credits](https://dashboard.staging.distribute.ai/provider/credits)
{% endhint %}

In order to get a completely clean reinstall, it's recommended to do the following steps:

1. Run `sudo systemctl disable --now distributeai.service` in a terminal
2. Run `sudo systemctl stop distributeai.service` in a terminal
3. Run `sudo rm /etc/systemd/system/distributeai.service` in a terminal
4. Run `sudo rm -rf ~/.local/share/distribute.ai` in a terminal
5. Restart your machine
6. Navigate to <https://dashboard.distribute.ai/provider/downloads> to download and install the latest version


# Desktop System Requirements

There are some low system requirements that are needed for your provider to run inference and earn points.&#x20;

1. AVX, short for Advanced Vector Extensions is an extension to the x86 instruction set that enhances the speed of floating-point operations, making it a requirement for running AI models. Intel CPUs made after Sandy Bridge, the 2011 CPU line, and AMD CPUs made after 2013.
2. While it may be possible to run on machines with less, 6GBs of ram is considered the minimum, and machines with less may earn fewer points.


# Distribute.ai Discord Bot

The distribute.ai discord bot allows users to interact and generate free unfiltered AI content, in any server.

<figure><img src="/files/yi2ctOwcEJvmhnLvWjAJ" alt=""><figcaption></figcaption></figure>


# Adding the bot to a server

Anyone is able to quickly add the distribute.ai discord bot to their server by following the steps below.

1. Click this link - [Add Bot to Server](https://discordapp.com/oauth2/authorize?client_id=1238009056451498024)
2. Click "Add to Server"

<div align="center"><figure><img src="/files/5IWpI1vttGq0NWj9Cjdf" alt="" width="372"><figcaption></figcaption></figure></div>

2. Select the server to add it to and click "Continue." As a note you must be an owner/admin to add the bot in most servers.

   <figure><img src="/files/NaWRHwR3mlChSWgES1T7" alt="" width="375"><figcaption></figcaption></figure>

3. Make sure "Use Application Commands" is enabled then click authorize.&#x20;

   <figure><img src="/files/qiFqmzzUAQEswlRhcJDq" alt="" width="375"><figcaption></figcaption></figure>

4. Once this is done, anyone in the server can now generate free AI content!


# Adding the bot as a user app

Why install the app to your user? This enables you to use the distribute.ai bot in any server, anytime.

1. Click this link - [Add Bot to ](https://discordapp.com/oauth2/authorize?client_id=1238009056451498024)[User](https://discordapp.com/oauth2/authorize?client_id=1238009056451498024)
2. Click "Try it Now"

<div align="center"><figure><img src="/files/5IWpI1vttGq0NWj9Cjdf" alt="" width="372"><figcaption></figcaption></figure></div>

2. Read over the permissions granted then click "Authorize."

<figure><img src="/files/HZhRfwSWi6wk09QWyP5h" alt="" width="369"><figcaption></figcaption></figure>

3. Success! You can now access the bot.&#x20;

<figure><img src="/files/WFibES9RshYuCZJrau1K" alt="" width="260"><figcaption></figcaption></figure>

3. Once the bot is enabled, you will need to use the /tos slash command to enable generation. This only needs to be done once.&#x20;
4. Once this is done, you can now use the bot to generate free AI content in any server you're in.&#x20;


# Bot Commands

The distribute.ai discord bot has a list of commands to make generation easy.

### /generate&#x20;

* Allows you to generate AI images.&#x20;

  * Required Inputs&#x20;
    * Prompt: Description of what to generate (I.E. A beautiful sunrise).&#x20;
    * For most users, a prompt is all they will need to ever use to generate content to their liking.&#x20;
  * Optional Inputs
    * seed: specify the generation seed for consistency in outputs.&#x20;
      * Min value - 1
      * Max Value - 1000000
    * inference-steps: adjust inference steps for output quality
      * Min Value - 1
      * Max Value - 30
    * guidance-scale: how close the image should be to the prompt
      * Min Value - 1
      * Max Value - 10

  <figure><img src="/files/yi2ctOwcEJvmhnLvWjAJ" alt="" width="325"><figcaption></figcaption></figure>

### /ref

* Retrieves your referral code to show other users in the guild/server you're in.

<figure><img src="/files/h2eBUlDSL90nM4PJ6lyl" alt="" width="375"><figcaption></figcaption></figure>

### /stats

* Displays your current stats for generation such as credits received, referrals, uptime,  servers interacted in, servers initialized, and discord interactions.

<figure><img src="/files/gZJB544KbQdbx8eLLDmH" alt="" width="375"><figcaption></figcaption></figure>


# Generation Buttons

To improve the user-experience, we've added buttons to simplify generation.

<figure><img src="/files/WTLQGCTFuPxKDrfWEKsz" alt="" width="477"><figcaption></figcaption></figure>

### Enhance

* Increases inference steps to improve output quality using the same seed.&#x20;

### Retry

* Randomizes generation seed and retries generation using the same prompt.&#x20;

### Details

* Displays information about the generation such as model name, seed, etc.

### Dashboard

* Links to the DistributeAI dashboard


# Prompting Guide

How to use the text-to-image generators effectively

## Flux.1 \[Dev]

* Flux is the primary model for the /generate command&#x20;
* FLUX.1 \[dev] is an open-weight, guidance-distilled model for non-commercial applications. Directly distilled from FLUX.1 \[pro], FLUX.1 \[dev] obtains similar quality and prompt adherence capabilities, while being more efficient than a standard model of the same size.
* A great resource to view different prompt results is [PromptHero](https://prompthero.com/flux-prompts)
* A well-crafted FLUX.1 prompt typically includes the following components:
  * **Subject**: The main focus of the image.
  * **Style**: The artistic approach or visual aesthetic.
  * **Composition**: How elements are arranged within the frame.
  * **Lighting**: The type and quality of light in the scene.
  * **Color Palette**: The dominant colors or color scheme.
  * **Mood/Atmosphere**: The emotional tone or ambiance of the image.
  * **Technical Details**: Camera settings, perspective, or specific visual techniques.
  * **Additional Elements**: Supporting details or background information.
  * A more detailed guide can be found [here](https://www.giz.ai/flux-1-prompt-guide/)

## Pony Realism NSFW

* Pony realism is the latest supported model for NSFW and is accessed when using the /generate-nsfw command.
* As this is a NSFW model, prompts need to be based around humans/creatures and body features.&#x20;
* *This version leans more towards Pony for broader variety while maintaining realistic quality.*
  * *Good faces at medium-close distances.*
  * *Great skin detail.*
  * *Great prompt adherance.*
* *Prompting guidelines*
  * **Terminology:** Recommended the use of "female/male" instead of "woman/man"
  * **This version does not need any trigger words, and as like most Pony models it uses the following prompt style:**

    ***Positive:***

    ```
    score_9, score_8_up, score_7_up, BREAK
    ```

    ***Negative:***

    ```
    score_1, score_2, score_3
    ```
  * Any race keywords need to proper such as "african american" or "asian" or "caucasian" to get the best results.
  * Using proper descriptions for genetalia and other body parts is also highly recommended.&#x20;
  * For more info and to view prompts <https://tungsten.run/sparks/ponyrealism>


# Distribute.ai Dashboard

Understanding the distribute.ai aashboard

<figure><img src="/files/UIaqGxwCS6Xci8OFJhAV" alt=""><figcaption><p>Oasis AI Dashboard</p></figcaption></figure>

{% content-ref url="/pages/sEApHmnAlJDuHAGNgf46" %}
[Statistics](/distribute-for-consumers/distribute.ai-dashboard/statistics)
{% endcontent-ref %}

{% content-ref url="/pages/gvRLIFVZ6mplKxOqhtxV" %}
[Referrals](/distribute-for-consumers/distribute.ai-dashboard/referrals)
{% endcontent-ref %}

{% content-ref url="/pages/OiJM5NNs33AIHMe9HKpt" %}
[Account Settings](/distribute-for-consumers/distribute.ai-dashboard/account-settings)
{% endcontent-ref %}


# Statistics

The statistics page is the main page of our dashboard providing real-time information on your contributions to the distribute.ai network.

<figure><img src="/files/iST8Nf39rb1OwHvRQlg0" alt=""><figcaption><p>Dashboard Providers</p></figcaption></figure>

### Status

Your current provider connection status. To be providing, you should see "Active."

### Name

The personal name for your provider hardware. Can be named at your preference.&#x20;

### IP Address

The IP address of the hardware provider connected.&#x20;

### System CPU

The CPU that we have detected you are providing to the network.&#x20;

### System GPU

The GPU that has been connected to the network.&#x20;

### Uptime

How many Days/Hours/Minutes that your provider has been live and able to process compute.&#x20;

### Actions

Allows you to rename or delete a provider from your dashboard.&#x20;


# Referrals

Refer friends and earn bonuses and perks on the distribute.ai network.

<figure><img src="/files/aDTKtgvQqQMPTWEMKl9y" alt=""><figcaption><p>Manage your referrals</p></figcaption></figure>

### Creating a referral code

* You can create/update/edit your referral code at anytime by visiting our referral dashboard at <https://dashboard.distribute.ai/provider/referrals>
* To edit your code, simply type a new string of text and click "Update Code"
* As a note, each referral code must be unique to each account
* Referrals are unlimited usage and give perks to both referrer and referee

### Managing Referrals

* Referrals are only complete once the user has signed up and verified their information
* Each unique valid referral will contribute points back to the person who referred them&#x20;
* Attempts to sybil or otherwise manipulate the referral system may result in loss of points


# Account Settings

Editing your account settings

<figure><img src="/files/3cibhOUrMEf8PbSsfTgl" alt=""><figcaption><p>Alert Settings</p></figcaption></figure>

### Accessing the Setting Page

* You can access settings via the bottom left corner of our Dashboard or by visiting <https://dashboard.distribute.ai/settings/notifications> directly.&#x20;

### Important Alerts

* Weekly Report&#x20;
  * Information on metrics and usage
* Newsletter
  * An AI focused newsletter focused on distribute.ai and latest developments
* Provider Alerts
  * Receive email notifications of threshold issues or errors


