# Overview

At [Sahara AI](https://saharaai.com/), we’re committed to empowering developers, researchers, and innovators to create and deploy cutting-edge AI solutions with confidence. Our user guides and documents are designed to help you make the most of our products and ecosystem, whether you’re sourcing or annotating high-quality datasets, leveraging compute resources, or integrating seamlessly with our tools and APIs.&#x20;

With clear instructions, best practices, and tailored examples, you'll find everything you need here to navigate our ecosystem, maximize productivity, and unlock the full potential of your AI projects.&#x20;

**How to Get Started**: simply use the menu in the sidebar to find the document you are looking for!

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

The Sahara AI official website is [SaharaAI.com](http://saharaai.com/) (formerly [saharalabs.ai](http://saharalabs.ai/)).


# Welcome to Sorin

**Your personal agent for global digital markets.**

Unlike most investment tools that separate research, execution, and portfolio tracking into fragmented systems, Sorin unifies the entire workflow. Research opportunities, analyze positions, and execute trades through natural-language instructions without switching tools or stitching together disconnected platforms. Use it as a standalone app, run it as an autonomous agent, or add its capabilities as skills for other agents and workflows, customized to fit how you invest.

Until now, autonomous trading required either a quant team or a patchwork of bots, each locked to one platform, each requiring you to hand over funds to a wallet you don't control. Sorin puts that same capability in the hands of any individual investor: noncustodial, locally run, and connected to the exchanges and protocols you already use through your own API keys.

<figure><img src="/files/0aR2CUYX37nw6WnKxQYr" alt=""><figcaption></figcaption></figure>

## What Can Sorin Do?

| Capability                                                                | What It Means for You                                                                                                                                          |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Personalized Intelligence**                                             | Sorin builds a unique persona for each user, learning your goals, risk tolerance, and interests so every insight is tailored to you.                           |
| **Cross-Market Research**                                                 | Synthesizes on-chain data, protocol fundamentals, market structure, and historical context across spot, perps, prediction markets, and multi-chain ecosystems. |
| **Sentiment & Narrative Tracking**                                        | Monitors large wallet activity, social sentiment, and narrative momentum to surface emerging opportunities as they form.                                       |
| **Strategy Planning**                                                     | Helps build and refine multi-asset strategies, flagging inefficiencies and suggesting improvements as plans take shape.                                        |
| <p><strong>Intent-Based Execution</strong> <br><em>(desktop app)</em></p> | Move from insight to action with natural-language commands — explore scenarios, adjust exposure, and execute directly in chat.                                 |
| <p><strong>Automated Trading</strong> <br><em>(desktop app)</em></p>      | Executes on your behalf, 24/7 with custom trading bots catered to your goals with secure guardrails.                                                           |
| **Proactive Alerts**                                                      | Markets are 24/7. Sorin notifies you the moment something important happens and explains what it means for your portfolio.                                     |
| **Multi-Market Coverage**                                                 | Works across crypto, stocks, commodities, prediction markets, tokenized assets, and more.                                                                      |

## Who Is Sorin For?

* **Active crypto investors** who want research, analysis, and execution in a single workflow
* **Multi-market traders** managing exposure across crypto, equities, commodities, and prediction markets
* **DeFi users** who want portfolio-aware recommendations and cleaner execution
* **Anyone** who wants a smarter, more personal way to invest in always-on markets

## The Problem

Investing has never been more accessible and never more overwhelming. On any given day, an active investor might:

* Watch prices across multiple CEXs and DEXs
* Track on-chain flows on Etherscan, Solscan, or Arkham
* Monitor TVL, fees, and protocol health on DeFiLlama
* Check funding rates and open interest on derivatives dashboards
* Scroll X, Telegram, and Discord for sentiment and narratives
* Watch prediction market odds on Polymarket
* Switch to a spot venue to rebalance, a perps venue to hedge, and a DeFi frontend to farm
* Manually reconcile positions across wallets, exchanges, and chains

That's a dozen tools — and most of them don't talk to each other. Markets move nonstop. Narratives shift in real time. Information is fragmented. Signals arrive faster than they can be contextualized. And decisions often get made without a complete view of portfolio exposure, market structure, or downstream risk.

**The gap between insight and action keeps widening.**

## How It Works

Sorin collapses that gap into a single conversation.

Instead of switching between tools, you simply tell Sorin what you're trying to do:

> "What's driving the move in ETH this morning?"
>
> "How exposed am I to liquid staking narratives right now?"
>
> "Find me a pair trade idea between two L2 tokens."
>
> "Rebalance my portfolio to reduce BTC exposure by 10%."
>
> "Alert me if my perps position drops below 2x collateral."
>
> "Which prediction markets are pricing in a rate cut this quarter?"

Sorin understands your portfolio, your goals, and your risk tolerance. It pulls real-time market intelligence, synthesizes it against your context, and helps you move from **insight to action with clarity and control** — all in one interface.

## Key Advantages

### Personal From Day One

Sorin creates a unique persona for each user. It learns your goals, risk tolerance, and interests, then proactively delivers tailored insights, alerts, and opportunities — instead of generic market noise.

### End-to-End Portfolio Management

Most tools separate research, analysis, and execution. Sorin unifies them. The context you gather while researching is the same context that informs execution, so you're never copying data between tabs or rebuilding your thesis in a different tool.

### Built for 24/7 Markets

Prediction markets are moving from the margins into the mainstream. Major financial institutions are exploring around-the-clock trading and on-chain settlement. As market activity becomes always-on and increasingly crypto-native, Sorin keeps pace — watching, alerting, and acting whenever it needs to with automated execution.

### Cross-Market by Design

Sorin doesn't stop at crypto. It covers stocks, commodities, prediction markets, tokenized assets, and more — so you can reason about exposure and opportunity across the full picture of what you own and what's moving.

### Intent-Based, Not Click-Based

You describe what you want. Sorin proposes how to get there, shows the tradeoffs, and executes on your confirmation. The interface adapts to your intent instead of forcing you to adapt to a UI.

### Flexible Deployment

Use Sorin as a standalone chat app, run it as an autonomous agent, or embed its capabilities as a Skill inside your own agents and workflows.

## Sorin vs. Traditional Tools

|                       | Traditional Tools                                  | Sorin                                            |
| --------------------- | -------------------------------------------------- | ------------------------------------------------ |
| **Access**            | Open 10+ different dashboards and apps             | One chat interface                               |
| **Research**          | Aggregators + on-chain explorers + social feeds    | "What's moving ETH this morning?"                |
| **Portfolio View**    | Reconcile wallets and exchanges manually           | Unified, real-time view                          |
| **Strategy Planning** | Spreadsheets and screenshots                       | "Build me a 3-leg trade around the ETF decision" |
| **Execution**         | Connect wallet → Navigate UI → Configure → Confirm | "Rebalance to 40% BTC / 30% ETH / 30% stables"   |
| **Alerts**            | Per-tool, scattered notifications                  | Portfolio-aware, explained in context            |
| **Learning Curve**    | A different interface for every tool               | Describe what you want                           |
| **Personalization**   | Generic defaults, no portfolio awareness           | Unique persona per user                          |

## Three Ways to Use Sorin

Sorin is designed to meet you where you are. You can:

* **Use it as a standalone app** — chat-first research and execution in one place
* **Run it as an autonomous agent** — let Sorin monitor markets and act on intent while you're offline
* **Add its capabilities as a Skill** — give other agents and workflows access to Sorin's intelligence layer


# Sorin Desktop vs. Sorin Web App

Sorin is available as a **desktop app** and a **web app**. Both share the same conversational AI copilot, cross-market research, portfolio awareness, and intent-based execution. The difference is in the agent infrastructure: the desktop app hosts Sorin's full runtime - persistent bots, local skills, and continuous data ingestion - while the web app focuses on always-available conversational research, planning, and execution.

Most users start with whichever fits their context. Power users typically end up on desktop.

### Feature Comparison

| Capability                          | Desktop |   Web App   |
| ----------------------------------- | :-----: | :---------: |
| Conversational AI copilot           |    ✅    |      ✅      |
| Cross-market research               |    ✅    |      ✅      |
| Sentiment & narrative tracking      |    ✅    |      ✅      |
| Portfolio tracking & awareness      |    ✅    |      ✅      |
| Strategy planning                   |    ✅    |      ✅      |
| Proactive alerts                    |    ✅    |      ✅      |
| Personalized intelligence (persona) |    ✅    |      ✅      |
| Intent-based execution              |    ✅    |      ✅      |
| Multi-workspace support             |    ✅    |      ✅      |
| Audit logs                          |    ✅    |      ✅      |
| Advanced trading                    |    ✅    | Coming soon |
| Trading Bots                        |    ✅    |      ❌      |
| Data Feeds & Reactions              |    ✅    |      ❌      |
| Skills (System & User)              |    ✅    |      ❌      |
| Import Local skills                 |    ✅    |      ❌      |
| Autonomous agent mode               |    ✅    |      ❌      |
| Local file system access            |    ✅    |      ❌      |
| Sorin Skill (for builders)          |    ✅    |      ❌      |

> **Why the split?** The desktop app hosts Sorin's full agent runtime — persistent Trading Bots, local Skills packages, continuous Data Feeds, and Autonomous Mode. The web app focuses on conversational research, planning, and execution, with Advanced Trading arriving soon.

### Choosing Your Surface

#### Use the Web App when

* You want fast access from any browser, on any device
* Your workflow is research, planning, and on-demand execution
* You don't need persistent bots or always-on data ingestion

#### Use the Desktop App when

* You want to run Trading Bots that operate continuously
* You want to install custom Skills or import your own
* You're configuring Data Feeds and Reactions for automated workflows
* You want autonomous agent mode running while you're away
* You're building on top of Sorin via the Sorin Skill

#### Use Both

Many users do. Desktop runs the agent infrastructure — bots, feeds, autonomous workflows — while the web app gives them quick access to research and execution from anywhere. Both surfaces share the same account, persona, and portfolio.


# Core Features

Sorin brings together intelligence, personalization, and execution in a single interface built for real-time markets. This page provides a high-level tour of Sorin's core capabilities. Each feature has a dedicated page with more detail.&#x20;

**Note: certain features such as autonomous trading are currently limited to the Sorin Desktop App**&#x20;

## Personalized Intelligence

Sorin is designed to be personal from day one. It creates a unique persona for each user, learning your goals, risk tolerance, and interests — then uses that context to deliver tailored insights, alerts, and opportunities instead of generic market noise.

* Learns your investment style through interaction
* Tracks your entire portfolio across venues and chains
* Adapts recommendations as your goals evolve

## Portfolio Management

Sorin maintains a complete, real-time view of your portfolio. Every insight, recommendation, and alert is interpreted against what you actually own — so advice is concrete, not abstract.

## Multi-Market Coverage

Sorin works across:

| Market                  | Coverage                                        |
| ----------------------- | ----------------------------------------------- |
| **Crypto spot**         | Major chains, L2s, and long-tail tokens         |
| **Derivatives & perps** | Funding, open interest, basis, positioning      |
| **Prediction markets**  | Polymarket and emerging venues                  |
| **Tokenized assets**    | RWAs, tokenized equities, tokenized commodities |

## Event Monitoring

Markets are driven by narratives as much as fundamentals. Sorin monitors:

* **Large wallet activity** — smart money moves and accumulation patterns
* **Social sentiment** — signal across X, Telegram, and news
* **Narrative momentum** — which themes are gaining traction

Emerging risks and opportunities surface as they form, so you can respond while markets are still repricing.

## Intent-Based Execution

Tell Sorin what you want to do. Explore options, adjust positions, and execute decisions directly in chat — without switching tools. Execution lives in the same interface as research, so you never lose context between deciding and acting.


# Trading Bots

Trading Bots support automated trading in the Sorin Desktop App. A bot is a named, policy-bound agent that Sorin uses to place trades on your behalf with sized against limits you set, routed through venues you authorize, and recorded in an audit trail you can review at any time.

You can run multiple bots in parallel, each with its own mandate, policy, and custody setup. Bots don't replace your judgment — they encode it, so that when Sorin acts, it acts the way you told it to.

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

### What a Bot Is

Every Trading Bot has four parts:

| Part                     | What It Defines                                                                  |
| ------------------------ | -------------------------------------------------------------------------------- |
| **Template and Mandate** | What the bot is for — its strategy, scope, and operating rules.                  |
| **Custody & Security**   | How the bot holds and accesses assets — paper, hot wallet, or connected account. |
| **Trading Limits**       | The hard limits on what the bot can do — size, slippage, frequency.              |

Sorin enforces all four every time a bot acts. If a proposed trade violates the policy, the bot doesn't execute — it flags the issue and, depending on your settings, pauses.

### Bot States

A bot is always in one of these states:

| State      | Meaning                                                  |
| ---------- | -------------------------------------------------------- |
| **Ready**  | Live-capable and configured, but not actively executing. |
| **Armed**  | Live and executing against its mandate.                  |
| **Paused** | Temporarily halted. Won't execute until you resume it.   |

You can toggle between states at any time. Moving from Paper to Armed requires explicit confirmation and a live custody connection.

### Creating a Bot

Open **Trading Bots** and click **+** to create a new bot. You'll configure:

#### 1. Strategy

Select a strategy template and write a clear, human-readable description of what this bot does. A good mandate is specific enough that you could hand it to someone else and they'd know what the bot is for.

**Good mandate examples:**

* "Dollar-cost average into BTC and ETH on a disciplined schedule, using market weakness to improve entry while keeping risk within predefined limits."
* "React to market-moving events and high-conviction crypto price moves across major assets, acting only when signal confidence exceeds the configured threshold."

**Weak mandate examples:**

* "Trade crypto."
* "Make money."

The mandate is shown alongside the bot's actions in the audit log, so future-you can always understand why past-you set it up this way.

#### 2. Trading Policy

Policy is the guardrail layer. Every field here is a hard limit Sorin will not cross.

| Field                  | What It Controls                                                                          |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| **Allowed tokens**     | Which assets the bot can trade (e.g., BTC, ETH). Any trade outside this list is rejected. |
| **Max order size**     | The largest single order the bot can place, in USD.                                       |
| **Daily notional cap** | Total USD notional the bot can trade across all orders in a 24-hour window.               |
| **Max slippage**       | Maximum acceptable slippage per trade, in basis points.                                   |
| **Reroute attempts**   | How many times the bot can retry on a different venue if the primary route fails.         |
| **Auto-pause after**   | Number of consecutive execution failures before the bot pauses itself.                    |

#### 3. Custody & Security

Choose how the bot holds and accesses assets:

| Custody Type             | What It Means                                                                                             |
| ------------------------ | --------------------------------------------------------------------------------------------------------- |
| **None (paper trading)** | Bot runs in simulation. No real address, no real funds.                                                   |
| **Connected account**    | A CEX account you've linked via read + trade API keys, scoped to this bot.                                |
| **New Wallet**           | A bot-specific wallet Sorin manages under your policies. Funds you move to it are under that bot's scope. |

**Session status** shows whether the bot's credentials are currently live and usable. "Simulated" means paper mode; "Active" means the bot can transact.

#### 4. Execution Routes

Where the bot can execute. Each route has a health indicator:

* **On-chain (DEX)** — for on-chain pairs and DeFi execution
* **CEX** — for centralized exchange spot and perps

A route marked **Healthy** is available for routing. A route marked **Degraded** or **Unavailable** means Sorin detected an issue (API outage, rate limiting, credential problem) and will avoid or reroute around it.

#### 5. Approval Mode

Controls what Sorin does before a trade fires:

| Mode                       | Behavior                                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Auto approve**           | Trades within policy execute without per-trade confirmation. Suitable for well-tested bots with tight policy. |
| **Confirm first**          | Every trade generates a preview that requires your explicit approval before executing.                        |
| **Confirm over threshold** | Trades above a specified size require approval; smaller trades auto-execute.                                  |

You can change this at any time. Starting a new bot with **Confirm first** is the safest default.

### The Bot Detail View

When you select a bot, the detail view has four tabs:

#### Overview

A snapshot of everything that defines the bot: Identity & Mandate, Trading Policy, Custody & Security, Execution Routes, and the bot's most recent execution. If something is wrong — an exceeded limit, a degraded route, a credential issue — it shows here.

#### Assets

The bot's current holdings and positions. For a paper bot, this is simulated. For a live bot, it reflects real balances available to the bot under its custody setup.

#### Automation

Schedules, triggers, and rules the bot runs on. For example:

* A DCA bot's schedule (daily/weekly cadence, buy sizes, assets)
* An event-driven bot's trigger conditions (price thresholds, narrative signals, external events)
* Conditional rules tied to portfolio state

#### Audit

A full, append-only log of everything the bot has done — proposed trades, executed trades, rejected trades, policy hits, pauses, and configuration changes. Every entry is timestamped and includes the specific policy value that applied at the time.

### Example: A DCA Bot

<figure><img src="/files/5N2RO4Ko6euJ7EJkR3mH" alt=""><figcaption></figcaption></figure>

**Mandate:** "Dollar-cost average into BTC and ETH on a disciplined schedule, using market weakness to improve entry while keeping risk within predefined limits."

**Policy:**

| Field              | Value      |
| ------------------ | ---------- |
| Allowed tokens     | BTC, ETH   |
| Max order size     | $1,000     |
| Daily notional cap | $5,000     |
| Max slippage       | 50 bps     |
| Reroute attempts   | 1          |
| Auto-pause after   | 2 failures |

**Custody:** Paper trading (until validated) **Approval mode:** Auto approve **Execution routes:** On-chain (DEX) and CEX, both healthy

**What happens when a scheduled buy fires:**

1. Bot checks current BTC and ETH prices across authorized venues
2. Chooses best route based on quoted price and current route health
3. Verifies order size is within policy ($1,000 max, $5,000 daily cap not yet hit)
4. Verifies slippage estimate is within 50 bps
5. Executes the trade on the chosen route
6. Logs the action in the audit tab with full context

If any check fails — say, slippage comes back at 85 bps — the bot **does not execute**. It logs the reason and, depending on your settings, either retries on a different route or pauses.

### Managing Multiple Bots

You can run multiple bots simultaneously, each with its own mandate and policy. Common patterns:

| Setup                            | What It's For                                                              |
| -------------------------------- | -------------------------------------------------------------------------- |
| **DCA bot + event-driven bot**   | Disciplined accumulation + opportunistic trades around signals.            |
| **One bot per strategy**         | Each strategy is isolated — a failure in one doesn't affect others.        |
| **Paper bot alongside live bot** | Validate a new mandate against live market data before committing capital. |

### Pausing and Stopping

You can **Pause** a bot at any time from the detail view. Pausing halts new executions immediately but preserves the bot's configuration and history.

Bots can also **auto-pause** if they hit the failure threshold you've set. When that happens, the Audit tab will show exactly which failures triggered the pause.

Deleting a bot (trash icon) removes the bot and its configuration. The audit history is preserved in your account history.


# Event Monitoring

Markets are driven by narratives as much as by fundamentals. A protocol can trade below fair value for months before a narrative shift repriceses it. A major global event can reshape positioning overnight. Sorin monitors narrative momentum and sentiment continuously, surfacing shifts as they emerge, not after the market has already moved.

The live event feed is Sorin's always-on radar. Paired with a global view and candle chart, it puts every signal in context, so you can act on timing and conviction without switching tools.

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

## What You Can Ask

Users can set alerts for any and all event types directly from the chat.&#x20;

<figure><img src="/files/8Q5qbITLgnei8ZCiOTAf" alt=""><figcaption></figcaption></figure>

#### **Examples:**

| You Say                                            | What You Get                                                           |
| -------------------------------------------------- | ---------------------------------------------------------------------- |
| "What's the market feeling about ETH today?"       | Sentiment read across social, news, and positioning.                   |
| "Which narratives are gaining traction right now?" | Ranked list of themes picking up momentum, filtered by your interests. |
| "What are large wallets doing in the LST space?"   | Smart money flows within a specific narrative.                         |
| "Is the AI + crypto narrative still alive?"        | Momentum trajectory — is conversation growing, stable, or fading?      |
| "What changed overnight for this token?"           | Overnight delta — flows, sentiment, mentions.                          |

## What Sorin Tracks

### Large Wallet Activity

Sorin monitors flows from significant on-chain wallets — the addresses that historically move markets. Patterns Sorin watches for include:

* **Accumulation** — steady inflows from wallets that rarely sell
* **Distribution** — large outflows, especially into CEX deposit addresses
* **Rotation** — funds moving from one narrative or asset to another
* **Unusual activity** — deviations from a wallet's typical behavior

### **Global Events**

Markets don't exist in isolation. Sorin watches the real-world events that reshape positioning across every asset class:

* **Macro & monetary policy** — rate decisions, CPI prints, central bank commentary
* **Geopolitical shocks** — conflict escalations, sanctions, elections, regulatory action
* **Energy & commodities** — supply disruptions, OPEC decisions, shipping chokepoint events
* **Crypto-specific catalysts** — ETF decisions, major unlocks, protocol exploits, exchange incidents

### Social Sentiment

Sentiment data is drawn from across the conversations where markets actually get priced:

* **X (Twitter)** — account-weighted, not just volume-weighted
* **Telegram** — public channels relevant to each theme
* **News sources** — both mainstream finance and crypto-native outlets

Sorin doesn't just measure volume of mentions — it looks at **quality, tilt, and velocity**.

### Narrative Momentum

A narrative is more than a hashtag. Sorin tracks:

* **Emerging narratives** — themes gaining attention across independent communities
* **Established narratives** — conversation intensity and where it's shifting
* **Fading narratives** — themes where attention is decaying despite token price

Each narrative is tied back to the assets, protocols, and positioning that tend to trade on it.

## Example Conversation

> **You:** "What's the current narrative landscape I should care about?"
>
> **Sorin:** "Based on your portfolio and interests, three narratives are worth your attention right now:
>
> **1. Restaking (gaining):** Conversation has picked up meaningfully this week after two new restaking protocols went live. Smart money wallets you've interacted with before are rotating in. Your current EigenLayer position is already exposed here — consider whether to scale up or rotate.
>
> **2. Prediction markets (stable):** Consistent attention, no major narrative shift. Polymarket volume is elevated but not unusually so.
>
> **3. Modular rollups (fading):** Social attention down week-over-week despite flat prices. This can precede a drawdown, especially for tokens that have led the narrative.
>
> Want me to go deeper on any of these?"

## Why This Matters

By the time a narrative is in mainstream headlines, the trade has often already happened. Sorin surfaces momentum **while markets are still repricing** — when large wallets are moving, when sentiment is shifting, when attention is consolidating around a theme — not after it's over.

That gap between "the story is emerging" and "the story is everywhere" is often where the best risk-adjusted opportunities live.

## What's Tracked Is What's Relevant

Sentiment and narrative tracking is filtered through your persona. If you've told Sorin you don't care about memecoins, Sorin won't waste your attention on memecoin narrative shifts. If you're focused on DeFi yield, narrative tracking skews toward themes that could affect your positions.

## Using Sentiment Well

{% hint style="warning" %}
Sentiment is a lens, not a signal. Narrative momentum can be a leading indicator or a contrarian indicator depending on the setup. Sorin flags both sides when relevant.
{% endhint %}

Good uses of sentiment tracking:

* **Confirming a fundamental thesis** — is the market starting to see what you're seeing?
* **Timing entry and exit** — not for precision, but for avoiding obvious local tops and bottoms
* **Identifying fading setups** — narratives that decay typically bleed before they break

Less useful uses:

* Treating sentiment as a precise entry/exit signal
* Confusing volume with quality of conversation
* Trading against fundamentals purely because sentiment is against you


# Intent-Based Execution

Most trading tools make you translate intent into clicks — pick a venue, navigate a UI, configure parameters, sign transactions. Sorin flips that. You describe **what you want to do**. Sorin handles the how.

<figure><img src="/files/7yfV0VQ96PCNqN2rgNqw" alt=""><figcaption></figcaption></figure>

## What You Can Ask

| You Say                                                       | What Sorin Does                                             |
| ------------------------------------------------------------- | ----------------------------------------------------------- |
| "Rebalance to 40% BTC, 30% ETH, 30% stables."                 | Plans the trades, shows the preview, asks for confirmation. |
| "Reduce my ETH exposure by 15%."                              | Proposes a sell sized against your current position.        |
| "Scale into SOL over the next few days if it holds above $X." | Builds a conditional ladder, triggers on signal.            |
| "Close the perps leg if funding flips negative."              | Sets a conditional close tied to live market data.          |
| "What happens if I put 10% of my portfolio into this?"        | Simulates the trade — new exposure, new risk, no execution. |

## How Execution Works

{% stepper %}
{% step %}

### Step 1: State Your Intent

Describe the outcome you want, not the button sequence. Sorin parses intent into a concrete action or plan.
{% endstep %}

{% step %}

### Step 2: Review a Preview

Before anything executes, Sorin shows you:

* **The trades** — assets, sizes, venues
* **The cost** — expected fees, slippage, funding (if perps are involved)
* **The impact** — how your portfolio changes, new exposures, new risk profile
* **What could go wrong** — risks Sorin is watching that could affect execution

{% hint style="warning" %}
Execution is always a two-step workflow: **Sorin proposes, you confirm.** No trade executes without your explicit approval.
{% endhint %}
{% endstep %}

{% step %}

### Step 3: Confirm to Execute

You confirm — and Sorin executes across the relevant venues. Everything stays in one interface. No tab switching. No wallet UI gymnastics.
{% endstep %}

{% step %}

### Step 4: Monitor in the Same Chat

Sorin keeps you updated on execution status, fills, and post-trade context — in the same conversation. Your execution isn't a separate log in a separate tool; it's part of the thread.
{% endstep %}
{% endstepper %}

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

## What Execution Covers

Sorin's execution capabilities span the same markets it researches:

| Market                 | Actions                                  |
| ---------------------- | ---------------------------------------- |
| **Spot crypto**        | Buy, sell, swap, rebalance across venues |
| **Perps**              | Open, close, scale, hedge positions      |
| **DeFi**               | Supply, borrow, provide liquidity, claim |
| **Prediction markets** | Take positions on event contracts        |
| **Cross-market**       | Multi-leg strategies that span the above |

## Scenarios You Can Explore Without Executing

Sorin supports **dry runs**. Ask what would happen if you did X, and Sorin simulates it — updated portfolio, new risk profile, expected P\&L under various scenarios — without placing any trades.

> **You:** "What happens if I close my full ETH position and move it into stables?"
>
> **Sorin:** "Your portfolio would shift from 62% crypto / 38% stables to 28% crypto / 72% stables. Crypto beta would drop from 0.8 to 0.3. Expected yield on the stable portion at current rates: \~5.1% annualized. Estimated execution cost: \~0.18% across slippage and fees. Do you want me to execute, or just keep this as a reference?"

## Conditional Execution

Not every trade should happen immediately. Sorin supports conditional execution tied to real-time data:

* **Price conditions** — "Buy if it breaks above X"
* **Portfolio conditions** — "Close if position exceeds 20% of portfolio"
* **Market conditions** — "Hedge if funding flips positive"
* **Time conditions** — "Scale in over the next 48 hours"

Conditional orders stay live until triggered, expired, or canceled.

## Why This Matters

The gap between **seeing an opportunity** and **acting on it** is where most edge gets lost — to hesitation, to context-switching, to bad execution on unfamiliar UIs.

By collapsing research, planning, and execution into a single interface with natural language, Sorin shrinks that gap to the minimum possible: describe what you want, review, confirm.

## Execution Principles

* **Always preview first.** No trade executes without your confirmation.
* **Transparent costs.** Every preview includes expected fees, slippage, and funding.
* **Portfolio-aware.** Execution is always evaluated against your full portfolio.
* **Explainable.** If Sorin proposes an unexpected structure, ask why — it will explain.


# Personalized Intelligence

Sorin is designed to be personal from day one. Rather than serving generic market feeds to every user, Sorin creates a **unique persona** that adapts to how you invest, what you care about, and how much risk you're willing to take.

<figure><img src="/files/0Nb73sapMKR2aYGgf5mA" alt=""><figcaption></figcaption></figure>

## What You Get

| You Say                                       | What Sorin Does                                                                  |
| --------------------------------------------- | -------------------------------------------------------------------------------- |
| "I'm focused on DeFi yield, low risk."        | Prioritizes yield opportunities, filters out speculative memecoin noise.         |
| "Show me trending narratives I'd care about." | Surfaces narratives aligned with your holdings and interests — ignores the rest. |
| "How does this fit my portfolio?"             | Interprets any asset or opportunity in the context of what you already own.      |
| "What am I exposed to today?"                 | Summarizes risk across your whole portfolio in plain language.                   |

## How Your Persona Works

### It's Built From Signal, Not a Long Onboarding Form

Sorin starts with a lightweight setup - your goals, risk tolerance, and key interests, then refines continuously based on what you do. Every query, trade, alert preference, and follow-up question adds signal.

### It's Portfolio-Aware

Your persona is grounded in your actual portfolio. Sorin tracks:

* **Assets held** — across wallets, chains, and venues
* **Position sizing** — how much of your portfolio each holding represents
* **Exposure type** — spot, perps, LP positions, prediction markets
* **Risk profile** — concentration, correlation, leverage

### It Filters Signal From Noise

Personalization is about what Sorin **doesn't** show you as much as what it does. If a narrative has nothing to do with your holdings or interests, Sorin doesn't waste your attention on it. If a setup matches your style, Sorin surfaces it proactively.

## Example Conversation

> **You:** "I'm a DeFi-focused investor, mostly on Solana, with a moderate risk tolerance and a bias toward yield. Not interested in memecoins."
>
> **Sorin:** "Got it. I'll prioritize Solana DeFi protocols, focus on yield opportunities, and filter memecoin narratives out of your feed.
>
> Based on your current holdings, your biggest exposures are to Kamino lending (42%) and a Sanctum LST strategy (28%). Your risk profile is currently concentrated in lending markets — want me to flag opportunities that could diversify without increasing your overall risk?"
>
> **You:** "Yes, and remind me if any of my existing positions drift above 45% of my portfolio."

## What Personalization Affects

| Surface                | How It's Personalized                                                          |
| ---------------------- | ------------------------------------------------------------------------------ |
| **Research summaries** | Framed against your holdings and risk profile                                  |
| **Alerts**             | Only triggered for things that matter to you, not generic market moves         |
| **Narrative tracking** | Filtered to themes relevant to what you own or what you've said you care about |
| **Recommendations**    | Sized and structured to fit your risk tolerance                                |
| **Explanations**       | Uses terminology and context appropriate to your experience level              |

## Privacy

Your persona — including your portfolio, preferences, and history — is private to your account. Sorin uses it to personalize your experience, not to share it.


# Portfolio Management

Sorin maintains a complete, real-time view of your portfolio across wallets, chains, exchanges, and venues. Every insight, recommendation, and alert is interpreted against what you actually own — so advice is always concrete, never abstract.

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

## What's Possible with Portfolio Management

| You Say                                     | What You Get                                                                            |
| ------------------------------------------- | --------------------------------------------------------------------------------------- |
| "What do I own?"                            | Full portfolio snapshot across venues, normalized and readable.                         |
| "How am I exposed to L2s?"                  | Exposure breakdown — direct holdings plus indirect exposure through LPs and strategies. |
| "What's my biggest risk right now?"         | Concentration, correlation, and leverage risks surfaced in plain language.              |
| "How has my portfolio performed this week?" | Performance attribution — which positions moved the portfolio and by how much.          |
| "Am I overexposed to any narrative?"        | Narrative exposure across your full book, including indirect exposure.                  |

## What Sorin Tracks

### Holdings Across Venues

Sorin unifies positions from:

* **Wallets** — EVM chains, Solana, and more
* **Centralized exchanges** — spot balances and perps positions
* **DeFi protocols** — lending positions, LP positions, staked assets
* **Prediction markets** — open event positions

All normalized into a single view, sized in a common unit of account.

### Exposure Breakdowns

Beyond just "what you hold," Sorin tracks:

* **By asset** — BTC, ETH, SOL, etc.
* **By chain** — L1 vs L2, Solana vs Ethereum, multi-chain exposure
* **By sector/narrative** — DeFi, restaking, memes, L2s, AI
* **By position type** — spot vs. perps vs. LP vs. yield

### Risk Metrics

Portfolio-level metrics Sorin surfaces proactively:

| Metric                 | What It Tells You                                            |
| ---------------------- | ------------------------------------------------------------ |
| **Concentration**      | How much of your portfolio is in a single asset or narrative |
| **Correlation**        | How much your positions move together — diversified or not   |
| **Leverage**           | Effective leverage across perps and borrow positions         |
| **Liquidity**          | How much of your portfolio could exit quickly if needed      |
| **Narrative exposure** | Total exposure to any single narrative, direct + indirect    |

## Why Portfolio Awareness Matters

Advice without context is noise. "This protocol looks good" means nothing without knowing whether you already have 40% of your portfolio exposed to that same narrative.

Sorin's answers are always grounded in your real portfolio:

* A research summary ends with **what it means for you specifically**
* A strategy proposal is sized against **your actual capital and risk profile**
* An alert is triggered by **your positions crossing a threshold**, not generic market moves
* A rebalance recommendation is calculated from **where you are to where you want to be**

## Example Conversation

> **You:** "How exposed am I to the restaking narrative?"
>
> **Sorin:** "Your restaking exposure totals \~22% of your portfolio, broken down as:
>
> * 11% direct — EigenLayer and two liquid restaking tokens
> * 6% indirect — your Pendle PT position is earning yield off restaking
> * 5% overlap — one of your DeFi LPs includes a restaking token on one side
>
> That's above your stated 'moderate' tolerance for any single narrative (typically 15%). If restaking has a bad month, \~22% of your book gets hit.
>
> Want me to show you trim options that reduce exposure while keeping your highest-conviction positions?"

## Staying Connected

Portfolio awareness depends on Sorin being able to see your positions. You'll connect:

* **Read-only wallet addresses** — for on-chain positions
* **Exchange accounts** — read-only API connections, no trading keys stored beyond what you explicitly authorize
* **Protocol positions** — surfaced automatically from connected wallets

{% hint style="info" %}
**Privacy note:** Portfolio data is private to your account and used only to personalize your Sorin experience.
{% endhint %}


# Data Feeds

Data feeds are the pipelines Sorin uses to ingest real-time information from markets, news sources, on-chain activity, and other signal sources. Each feed streams events continuously, and you can attach **reactions** to any feed — rules that tell Sorin what to do when specific events arrive.

Feeds and reactions are what turn Sorin from a passive assistant into an always-on agent. You configure the pipelines once; Sorin watches them forever.

<figure><img src="/files/4TLEGgDNBhcDGxZdW1qP" alt=""><figcaption></figcaption></figure>

### What a Data Feed Is

A data feed is a named, configured source of real-time events. Every feed has:

| Property        | What It Defines                                                                                                         |
| --------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Name**        | Human-readable label (e.g., "Binance ticker price", "Diplomacy & ceasefire updates").                                   |
| **Type**        | The category of data — Market, News, Social, On-chain, etc.                                                             |
| **Runtime**     | The underlying connector that fetches the data (e.g., `binance-ticker-price`, `Google News RSS`, `Polymarket Markets`). |
| **Description** | What the feed produces, so future-you remembers what it's for.                                                          |
| **Status**      | Whether the feed is live, in pilot, or paused.                                                                          |
| **Health**      | Whether the feed's runtime is currently ingesting successfully.                                                         |
| **Reactions**   | The automated rules attached to this feed.                                                                              |

You can run many feeds in parallel. Each feed is independent — pausing one does not affect the others.

### Feed Status

A feed is always in one of these states:

| Status     | Meaning                                                                                                 |
| ---------- | ------------------------------------------------------------------------------------------------------- |
| **Active** | Live and ingesting. Any configured reactions will fire on qualifying events.                            |
| **Pilot**  | Ingesting for evaluation only. Reactions can run, but the feed is marked as not yet production-trusted. |
| **Paused** | Halted. No ingestion and no reactions firing until resumed.                                             |

**Health** is separate from status. A feed can be Active but Unhealthy — meaning it's configured to run but the runtime is having trouble (API outage, credential issue, rate limiting). Health indicators appear next to every feed in the directory.

### Feed Types

Data feeds are grouped by the kind of information they carry:

| Type         | Typical Runtimes                        | Example Feeds                                         |
| ------------ | --------------------------------------- | ----------------------------------------------------- |
| **Market**   | Exchange APIs, tickers, order books     | Binance ticker price, Binance 24h, Polymarket Markets |
| **News**     | RSS aggregators, newswire               | Google News RSS feeds for geopolitics, policy, energy |
| **Social**   | WebSocket streams, mention APIs         | Real-time social mention streams for major tickers    |
| **On-chain** | Indexers, RPC endpoints, event watchers | Wallet activity, DEX flows, governance events         |

Type is used for filtering the directory and for reasoning about a feed's role in your overall automation setup.

### The Data Feeds Directory

The directory is the single place you manage every feed. From the **Customize → Data Feeds** view, you can:

* Search feeds by name or description
* Filter by type (Market, News, Social)
* Filter by kind (the specific runtime)
* Filter by status (Active, Pilot, Paused)
* Expand any feed to see its reactions
* Pause, configure, or delete a feed inline

The header shows live counts — how many feeds are active, how many are healthy, how many are in pilot or paused, and how many reactions have triggered in the current window.

### Reactions

A **reaction** is an automated rule attached to a data feed. When an event from the feed matches the reaction's filter, Sorin runs the reaction's "do" — typically reviewing the event against your mandate, determining impact on your positions, and executing any warranted trades or adjustments.

Reactions are how you move from "Sorin is watching" to "Sorin is doing." Without them, a feed just logs events.

#### Anatomy of a Reaction

Every reaction has four configurable sections:

**When**

The filter that determines whether an incoming event triggers the reaction.

* **Always** — every event from the feed triggers the reaction
* **Custom filter** — only events matching a specified condition trigger

Use **Always** when the feed itself is pre-filtered to just what you care about. Use a custom filter when one feed carries many event types and you only want to react to some.

**Do**

The natural-language instruction Sorin executes when the filter matches. This is where you tell Sorin what the reaction is *for*.

Good examples:

* "Review binance ticker price events against the mandate, determine impact on positions, and execute any warranted trades or adjustments."
* "Summarize the news item, check if any open positions are affected, and alert me if material."
* "Check whether the social mention volume crosses the threshold for the referenced ticker and, if so, open a pilot-sized position."

**Rate Limit**

The coarse guardrail that prevents a reaction from firing too often.

* **At most X times per {minute, hour, day}** — cap total executions in a rolling window

Rate limits are a safety net. Even if a feed is flooded with events, the rate limit caps how many times the reaction can actually run.

**Advanced**

Fine-grained throttling and scoping controls:

| Control                    | What It Does                                                                                                                                                  |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Workspace**              | The workspace the reaction runs in. Scopes the reaction's view of context and positions.                                                                      |
| **Trading Bot (optional)** | Ties this reaction to a specific Trading Bot. If set, any trades execute under that bot's policy and custody. If not set, the reaction runs globally.         |
| **Cooldown (seconds)**     | Minimum wait between consecutive reaction runs. Protects against event bursts.                                                                                |
| **Max per window**         | Caps the number of executions within the Window duration.                                                                                                     |
| **Window (seconds)**       | The rolling window over which Max per window applies.                                                                                                         |
| **Debounce (seconds)**     | If more events arrive within this window, Sorin waits for the stream to quiet down before firing once. Useful for collapsing bursts of near-duplicate events. |

{% hint style="info" %} **Start with conservative rate limits.** It's easier to loosen throttling after you've watched a reaction behave than to clean up after a runaway loop. Pilot mode plus a tight cooldown is a good starting posture. {% endhint %}

### Example: Reacting to a Market Event

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

**Feed:** Binance ticker price (Market, Active, Healthy)

**Reaction:**

* **When:** Always
* **Do:** "Review binance ticker price events against the mandate, determine impact on positions, and execute any warranted trades or adjustments."
* **Rate limit:** At most 10 times per hour
* **Workspace:** *(scoped to a specific workspace)*
* **Trading Bot:** No wallet — run globally
* **Cooldown:** 300 seconds
* **Max per window:** 10
* **Window:** 3600 seconds
* **Debounce:** 0 seconds

**What this does:**

Every Binance ticker price event triggers a reaction. Sorin reviews the event against the workspace's mandate and, if warranted, proposes or executes a trade. The rate limit caps the reaction at 10 runs per hour; the cooldown enforces at least 5 minutes between runs; and the window limits total runs to 10 in any rolling hour.

If the feed briefly floods with events (a fast move, many updates in a few seconds), the throttle absorbs the spike instead of firing ten times in a minute.

### Adding a Data Feed

From the Data Feeds directory, click **+** to add a new feed.

You'll configure:

1. **Name** — how you'll refer to it
2. **Type** — Market, News, Social, On-chain
3. **Runtime** — the specific connector to use (depends on what's available; additional runtimes can come from installed Skills)
4. **Description** — one-liner explaining what the feed produces
5. **Credentials or configuration** — API keys, symbols to track, RSS URLs, etc., depending on the runtime

New feeds default to **Pilot** status so you can watch them for a while before trusting them.

### Adding a Reaction

Expand any feed in the directory and click **+ Add reaction**. The reaction editor walks through When → Do → Rate limit → Advanced, with sensible defaults at each step.

A feed can have any number of reactions. It's often cleaner to have several narrowly-scoped reactions than one broad one — easier to tune, pause, or replace individually.


# Skills

Skills are installable packages that extend Sorin's capabilities. Each skill adds something Sorin can do: a new data feed runtime, an integration with a specific exchange or service, a domain-specific reasoning module, or a named tool the agent can invoke during a task.

If Trading Bots are Sorin's execution layer and Data Feeds are its ingestion layer, **Skills are the extensibility layer** — how you shape what Sorin knows how to do.

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

### What a Skill Is

A skill is a self-contained package that describes a capability. At minimum, a skill includes:

* A **name** (e.g., `binance`, `fiat`, `crypto-market-rank`)
* A **package** identifier — the directory or module Sorin loads the skill from
* A **SKILL.md** file that describes what the skill does, when to use it, and how to invoke it

The SKILL.md's description is what Sorin reads to decide when a skill is relevant to a task. A skill without a SKILL.md description will install, but Sorin won't have guidance on when to use it — the directory will show "No description found in SKILL.md".

### Skill Scopes: System vs. User

Skills live in two scopes:

| Scope      | Source                                 | What It's For                                                        |
| ---------- | -------------------------------------- | -------------------------------------------------------------------- |
| **System** | Bundled with Sorin                     | Core, always-available capabilities shipped by the product.          |
| **User**   | Installed locally to `~/.sorin/skills` | Capabilities you've added yourself — downloaded, built, or authored. |

On a fresh install, you'll typically have a small set of system skills and no user skills. Adding your own skills is how you specialize Sorin for your workflows.

#### Conflict Resolution

If a system skill and a user skill share the same name, **the user skill wins**. This lets you override or customize bundled behavior without editing system packages directly. Sorin will always prefer `~/.sorin/skills/<name>` over the system version when both exist.

### The Skills Directory

The Skills view — under **Customize → Skills** — lists every installed skill with:

* An **icon** indicating scope (system or user)
* The skill **name**
* Its SKILL.md **description**
* The **package** path Sorin loaded the skill from
* A **delete** action for user skills

The header shows totals: how many skills are installed, how many are system, and how many are user.

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

#### Filtering and Searching

You can filter installed skills by:

* **Scope** — show all, only System, or only User
* **Free-text search** — match against name, description, or package path

Filtering is useful when you have a lot of skills installed and want to quickly find, for example, all Binance-related skills or anything mentioning tokenized securities.

### Importing a Local Skill

Click **+ Import Local** to add a skill from your local filesystem.

You'll point Sorin at a directory containing the skill package. Sorin verifies:

1. A **SKILL.md** exists and is readable
2. The package structure matches expectations
3. No existing user skill with the same name would be silently overwritten (Sorin will prompt before overwriting)

Once imported, the skill appears in the User list and becomes available to Sorin immediately.

{% hint style="info" %} **Imports are local.** "Import Local" loads a skill from a directory on your machine. It does not upload your skill to any shared catalog or to other users. {% endhint %}

### What Skills Can Do

Skills are a general extensibility mechanism. Some common patterns:

#### Exchange and Service Integrations

Skills that wrap a specific venue's API so Sorin can call it by name.

**Example: `binance`** *"Use binance-cli for Binance Spot, Futures (USD-S), and Convert. Requires auth."*

When installed, Sorin can use Binance as a runtime for data feeds, as an execution route for Trading Bots, and as a callable tool during conversational tasks.

#### Domain-Specific Queries

Skills that encode specialized knowledge or data access.

**Example: `fiat`** *"Query Binance fiat payment capabilities — supported countries, currencies, payment methods, limits, and crypto on/off-ramps."*

Instead of Sorin having to reason through raw API documentation every time, a well-designed skill exposes a clean interface for a specific kind of question.

#### Market-Data Runtimes

Skills that act as runtimes for Data Feeds.

**Example: `crypto-market-rank`**

A skill like this can back a Market-type data feed, supplying ranked market data that reactions can then act on.

#### Information Modules

Skills that bundle reference information — supported securities, instrument definitions, protocol metadata — so Sorin has consistent, versioned answers rather than reaching for ad-hoc searches.

**Example: `binance-tokenized-securities-info`**

### How Sorin Uses Skills

Skills aren't invoked manually. During a task, Sorin reads each relevant SKILL.md's description and decides which skills apply.

Skills interact with the rest of Sorin in three main ways:

| Surface                  | How Skills Plug In                                                                              |
| ------------------------ | ----------------------------------------------------------------------------------------------- |
| **Conversational tasks** | Sorin invokes a skill during a chat when it needs the capability the skill provides.            |
| **Data Feeds**           | Some skills supply runtimes that back specific data feed kinds.                                 |
| **Trading Bots**         | Skills can expose execution routes or venue integrations that bots then use under their policy. |

This means installing a skill can unlock new feed runtimes, new bot execution routes, and new in-conversation capabilities simultaneously — depending on what the skill provides.

### Skill Quality and SKILL.md

A skill's usefulness is capped by the quality of its SKILL.md description. A good description:

* **Names the capability clearly** — "Query Binance fiat payment capabilities" is better than "Binance tool"
* **States the scope** — what it covers and what it doesn't
* **Notes preconditions** — auth required, keys needed, regional limits
* **Gives an example call or use case** where helpful

Skills showing "No description found in SKILL.md" will still install, but Sorin is less likely to invoke them correctly. If you author skills, invest in the SKILL.md file — it's how Sorin decides when to reach for the skill in the first place.

### Managing Skills

From the Skills directory you can:

* **Delete** a user skill — removes it from `~/.sorin/skills` and the catalog
* **Inspect** a skill — click into it to see its full SKILL.md and package contents
* **Re-import** — run Import Local again to update a skill with new local changes

System skills can't be deleted from the UI; they're part of the Sorin install.

### Example: A Trading-Focused Setup

A user set up for active crypto trading might install:

| Skill                  | Purpose                                         |
| ---------------------- | ----------------------------------------------- |
| `binance`              | Spot, futures, and convert execution on Binance |
| `fiat`                 | Reference for fiat on/off-ramp routing          |
| `crypto-market-rank`   | Market-ranking runtime for feeds                |
| `onchain-pay-open-api` | On-chain payment API integration                |
| `meme-rush`            | Specialized narrative-tracking module           |

With these installed, Sorin can run Binance-backed data feeds, route execution through Binance under a Trading Bot's policy, and invoke each skill during conversational tasks — all without the user having to tell Sorin which tool to use.

### Authoring Your Own Skills

If a skill you want doesn't exist, you can author your own. The key pieces:

1. A directory that becomes the skill's package
2. A **SKILL.md** at the root describing name, scope, preconditions, and usage
3. The code or configuration the skill provides

Once ready, place it under `~/.sorin/skills/<your-skill-name>` or use **Import Local** to load it from elsewhere on your machine.

Skill authoring specifics — conventions, APIs, file layouts — are covered in the separate skill authoring guide.


# Cross Market Research

One of Sorin's most powerful capabilities is turning fragmented market data into a single, coherent picture of any asset, protocol, or theme. Just ask — Sorin pulls together data from across the market and presents it as a clear, structured summary.

## What You Can Ask

| You Say                                                   | What You Get                                                                         |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| "Tell me about ETH right now."                            | Full overview — price, market structure, flows, narratives, derivatives positioning. |
| "Is this protocol healthy?"                               | Fees, revenue, TVL trends, capital flows, governance status.                         |
| "Compare SOL and ETH at the current setup."               | Side-by-side comparison grounded in current market structure.                        |
| "What's the history of this kind of setup?"               | Historical context — how similar conditions have played out before.                  |
| "What's the cross-chain story for stablecoins this week?" | Multi-chain synthesis across venues and bridges.                                     |

## What's Included in a Research Summary

When you ask Sorin to research a token, protocol, or theme, it synthesizes data across several dimensions:

### On-Chain Data

* Wallet flows and smart money activity
* DEX and CEX volume, including imbalances
* Token-holder concentration and behavior
* Network activity and usage metrics

### Protocol Fundamentals

* Fees, revenue, and capital flows
* TVL trends — directional, not just absolute
* Governance activity and upcoming changes
* Security and audit status

### Market Structure

* Spot liquidity and depth
* Derivatives positioning — funding, open interest, basis
* Options flow and skew
* Perps vs. spot divergences

### Historical Context

* Comparable setups from prior cycles
* How analogous conditions have resolved before
* Seasonality and regime indicators

### Multi-Chain Coverage

Sorin reasons across chains, not just within a single ecosystem. When a token or theme lives on multiple chains, Sorin integrates the full picture — bridges, fragmented liquidity, and cross-chain flows.

## Example Conversation

> **You:** "Give me a full research brief on Ethena (ENA)."
>
> **Sorin:** "Here's what I'm seeing on Ethena:
>
> **Protocol fundamentals:** USDe supply has grown \~18% over the past 30 days; fee revenue is tracking with supply growth. Insurance fund has expanded proportionally.
>
> **Market structure:** ENA spot is trading with a slight discount to perps; funding has been positive but unremarkable. Open interest is up alongside price.
>
> **On-chain:** Top wallets have been net accumulators over the past two weeks. No unusual holder concentration changes.
>
> **Narrative:** Conversation has shifted from 'delta-neutral stablecoin' to 'yield-bearing collateral' as more DeFi integrations go live.
>
> **Risk to flag:** USDe yield depends on perps funding. If market-wide funding compresses, so does the yield — worth tracking.
>
> Given your current portfolio, ENA would increase your exposure to perps-funding-dependent yield. Want me to size a position that keeps that exposure under 15%?"

## Why This Is Different

Most research tools show you data. Sorin builds you a **read**.

* **Structured, not scrollable** — Sorin's output is organized for decision-making, not endless scrolling.
* **Cross-referenced** — multiple sources are reconciled into a single view.
* **Personalized** — framed in terms of your portfolio, goals, and risk.
* **Actionable** — ends with what you can do, not just what's happening.

## Asking Better Questions

* **Be specific about timeframe.** "How has BTC behaved in the last 48 hours?" is better than "BTC."
* **Ask for comparisons.** Sorin handles "X vs Y" setups well and will highlight what's structurally different.
* **Follow up.** Research is iterative. After an initial brief, ask "what are the risks?" or "what's the bear case?"
* **Anchor to your portfolio.** "Does this change my thesis on my existing ETH position?" gets a portfolio-aware answer.

## What's Next?

See how Sorin layers sentiment on top of fundamentals in [Sentiment & Narrative Tracking](broken://pages/efd47c6def792149aa8d67f00134f5547d00acd7), or learn how research connects to execution in [Intent-Based Execution](broken://pages/1b559d4c2d2bfdcef750a8e1d438602825d66658).


# Use-Cases


# Strategic Planning

Sorin helps you build strategies that span multiple assets, venues, and markets — and refines them as you go. It flags inefficiencies, suggests improvements, and keeps every plan grounded in your portfolio and the current market state.

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

## What You Can Ask

| You Say                                              | What You Get                                                      |
| ---------------------------------------------------- | ----------------------------------------------------------------- |
| "Build me a 3-leg strategy around the ETF decision." | Multi-leg structure with spot, perps, and options considerations. |
| "How should I hedge my current ETH exposure?"        | Hedge options sized to your current position.                     |
| "I want to rebalance toward yield — give me a plan." | Step-by-step rotation plan across your holdings.                  |
| "Is there a cleaner way to express this view?"       | Structural alternatives to a plan you've already drafted.         |
| "What's the risk/reward on this setup?"              | Scenario analysis with realistic upside, downside, and breakeven. |

## How Strategy Planning Works

{% stepper %}
{% step %}

### Describe the Intent

Start with what you're trying to achieve. The more concrete the better.

* "I want yield without adding smart-contract risk beyond what I already have."
* "I want long exposure to restaking but hedged for a broad crypto drawdown."
* "I want to trade the ETF decision with limited downside."
  {% endstep %}

{% step %}

### Sorin Drafts a Plan

Sorin proposes a strategy structured around your intent, grounded in:

* Your current portfolio and how a new strategy interacts with existing positions
* Market structure — where the best expression of the view actually lives
* Liquidity constraints — what's realistic to size into
* Risk profile — sizing that matches your stated tolerance
  {% endstep %}

{% step %}

### You Refine Together

Strategy is iterative. You push back, swap legs, adjust sizes, and ask "what if" — Sorin recalculates in context. Every change is re-evaluated against your portfolio and the live market state.
{% endstep %}

{% step %}

### Execute When Ready

Once the plan is solid, Sorin can move directly to execution. You never leave the interface.
{% endstep %}
{% endstepper %}

## What Sorin Catches

### Inefficiencies

Sorin flags things like:

* Two legs that partially offset — you're paying fees to express a net position you could get more directly
* Sizing that doesn't reflect stated risk tolerance
* Execution venues where liquidity won't support your intended size
* Funding costs that eat into the expected return on a perps-based leg

### Better Structures

Sorin suggests alternatives when they exist:

* Options instead of perps when asymmetry matters more than directional exposure
* Spot accumulation instead of leveraged longs when conviction is high but timing is uncertain
* Prediction market legs when an event-driven view has a cleaner expression there

### Portfolio Interactions

A strategy doesn't exist in isolation. Sorin shows:

* How a new position changes your overall risk profile
* Correlations with existing holdings you might not notice
* Total portfolio exposure to any single narrative or asset

## Example Conversation

> **You:** "I want to take a long view on restaking over the next 3 months, but I'm worried about a broader crypto drawdown. Build me something."
>
> **Sorin:** "Here's a draft, tuned to your moderate risk profile and your existing holdings:
>
> **Leg 1 — Spot long on your preferred restaking token.** Size: 5% of portfolio. Thesis: direct exposure, no funding cost.
>
> **Leg 2 — Short BTC perps as a hedge.** Size: equal notional to Leg 1. Thesis: if broader crypto drops, the hedge offsets most of the downside on Leg 1. Funding is currently \~4% annualized against you — factor this into holding cost.
>
> **Leg 3 — Optional: small long-dated ETH put.** Size: 0.5% of portfolio. Thesis: protects against a deeper drawdown scenario the perps hedge can't fully cover.
>
> **Net exposure:** Long restaking, flat on broad crypto beta, tail-hedged.
>
> **Risks to watch:** Funding compression on Leg 2 (cheap hedge becomes expensive), restaking-specific protocol risk on Leg 1.
>
> Want me to adjust sizing, skip Leg 3, or explore options on Leg 2 instead?"


# Autonomous Trading

Some of what Sorin does doesn't need you in the loop for every decision. Autonomous agent mode lets Sorin monitor markets, enforce rules you've set, and take pre-authorized actions — without you needing to be at the keyboard.

## What Autonomous Mode Does

* Watches your portfolio and the market continuously
* Enforces rules and guardrails you define
* Executes pre-authorized actions when triggers fire
* Flags everything it does for review so you stay in control

## Who It's For

* Traders managing strategies that require around-the-clock attention
* Investors who want automated rebalancing, hedging, or risk management
* Users running systematic strategies that benefit from rule-based execution
* Anyone who wants Sorin's intelligence to keep working overnight

## What You Can Automate

### Rule-Based Actions

Define rules in plain language. Examples:

* "Trim any single position that exceeds 20% of my portfolio."
* "Close my perps leg if funding flips and stays negative for 8 hours."
* "Rebalance weekly back to my target weights, within a 2% band."
* "If BTC drops more than 10% in 24 hours, hedge 50% of my crypto beta."

### Conditional Execution

Set up conditional orders that wait for market triggers:

* Price-based — scale in or out at specified levels
* Funding-based — open or close based on perps funding conditions
* Spread-based — enter pair trades when correlations decouple
* Event-based — act on governance outcomes, prediction market resolutions, or scheduled releases

### Monitoring and Reporting

Even when it's not executing, Sorin is watching — and summarizing. You can configure Sorin to send you a daily or weekly wrap-up of what happened, what rules triggered, and what the portfolio looks like now.

## Guardrails Come First

Autonomous mode is powered by the same intelligence as the standalone app, but with **guardrails and approvals tuned to your comfort level**.

You decide:

* Which actions can execute without per-trade confirmation
* Which actions always require confirmation (even if a rule triggered)
* Maximum size, maximum frequency, and total exposure limits
* Which assets, venues, or markets are in scope

{% hint style="warning" %}
Sorin will never execute anything outside the explicit rules and limits you've set. Autonomous mode expands Sorin's ability to act — it doesn't expand its authority.
{% endhint %}

## Example: An Automated Hedge

**Your setup:**

* Rule: "If my crypto exposure exceeds 65% of portfolio, hedge the excess with BTC short perps."
* Size limit: Hedge notional cannot exceed 25% of portfolio.
* Confirmation: Auto-execute if hedge is smaller than 10% of portfolio, otherwise ask first.

**What happens:**

A rally pushes your crypto exposure to 68%. Sorin calculates that hedging the excess requires a 3% notional short. That's below your auto-execute threshold, so Sorin:

1. Opens the hedge at current mid
2. Logs the action in your chat with full context
3. Monitors the hedge and adjusts if your crypto exposure changes

You see the log the next time you open Sorin. If you disagree, you close it with one message.

## The Sorin Skill: Autonomous Agents Beyond Sorin

Autonomous mode lets Sorin act on your portfolio. The **Sorin Skill** is a related capability that gives **other agents** access to the same intelligence layer — letting builders compose Sorin's market intelligence into their own autonomous systems.

→ See [Sorin Skill for Agents](broken://pages/96a4a364e001250ed5180b7a4681a76ca4bf0699).

## What's Next?

For an overview of Sorin's intelligence and execution capabilities, see [Core Features](file:///6832099/introduction/core-features.md). To understand how Sorin stays grounded in your portfolio, see [Portfolio Awareness](file:///6832099/features/portfolio-awareness.md).


# sorin skill

The Sorin Skill gives agents limited, structured access to the same intelligence layer that powers Sorin. It's the way to compose Sorin's market awareness into your own autonomous systems — without rebuilding the intelligence stack from scratch.

## What the Sorin Skill Gives You

Structured access to:

* **Token analysis** — multi-timeframe reads designed for agents to act on
* **Protocol financial health** — fees, revenue, capital flows, and comprehensive metrics for specific protocols
* **Project outlook** — prediction market odds, FDV expectations, price targets, and sentiment signals
* **Cross-market context** — the same signal layer Sorin uses internally, structured for programmatic consumption

Output is designed for an agent to **act on**, not just summarize.

## Who It's For

* Agent builders who want market intelligence without building it from scratch
* Trading system developers who want better signals than raw price indicators
* Researchers composing Sorin with other tools in a broader agent workflow
* Teams deploying autonomous agents that need structured market context

## How It's Different From Raw Data

Most agent systems either use raw exchange APIs (you compute indicators yourself) or a handful of off-the-shelf data sources (limited context).

The Sorin Skill returns a **structured market read** — multiple indicators across multiple timeframes, already reconciled and contextualized.

**Example difference:**

| Approach                   | What You Get                                                                                                                                                                                   |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Raw exchange API**       | Price candles. You compute RSI, moving averages, volume features yourself.                                                                                                                     |
| **Standard data provider** | Pre-computed indicators, usually single-venue, often single-timeframe.                                                                                                                         |
| **Sorin Skill**            | A structured read across daily, 4-hour, 1-hour, and 15-minute timeframes simultaneously — reconciled, with trend and regime context — designed to feed directly into an LLM or decision layer. |

## Example: A Trading Agent Using the Sorin Skill

An autonomous crypto trading agent built on the Sorin Skill typically has three jobs:

1. **Watch the market** — public exchange APIs handle price and volume data
2. **Decide** — the Sorin Skill is the signal engine
3. **Execute** — exchange APIs place the trades

The interesting architectural choice is step 2 — how the agent generates signals.

Rather than computing a handful of indicators from raw price candles, the agent calls the Sorin Skill's token analysis query and receives a structured market read across multiple timeframes simultaneously. That analysis is passed to a language model to extract a single actionable trade signal.

The result looks something like:

> "SELL, medium confidence: momentum has stalled near resistance and the daily trend bias has turned bearish across multiple timeframes."

**More context, better signals.**

## Pairing With Guardrails

Signals are only half the picture. A well-designed agent pairs the Sorin Skill's intelligence with a **guardrail layer** that checks every signal before execution:

* Position-size limits
* Portfolio-level exposure caps
* Drawdown checks
* Confidence thresholds
* Per-asset or per-venue restrictions

The Sorin Skill provides the read; your guardrail layer decides what to do with it.

## Where the Sorin Skill Runs

The Sorin Skill is available to agents running on compatible platforms. It's designed to integrate with agent frameworks that support skill-based composition — including autonomous agent runtimes where an LLM orchestrates multiple tools to accomplish a goal.

Configuration typically involves:

1. Adding the Sorin Skill to your agent's available tools
2. Adding relevant API keys to your agent's configuration
3. Calling Sorin Skill functions alongside your other tools

The specifics of setup will depend on the agent framework and runtime you're using.

## What You Shouldn't Use the Skill For

The Sorin Skill is **not** a replacement for the full Sorin experience when you're the end user. If you want:

* Portfolio-personalized insights — use the [Standalone App](broken://pages/eeee174806c158cd3b8d10ffa828f451f2680155)
* Interactive strategy planning — use the [Standalone App](broken://pages/eeee174806c158cd3b8d10ffa828f451f2680155)
* Proactive alerts on your own portfolio — use the [Standalone App](broken://pages/eeee174806c158cd3b8d10ffa828f451f2680155)

The Skill is for **builders who want to give their own agents access to Sorin-quality market context**, not for end-users managing their own portfolios.

## What's Next?

For more on Sorin as an autonomous system acting on your portfolio, see [Autonomous Agent Mode](broken://pages/47b7f65bb63d7d742cf9870ba6ee9b727366df61). For a high-level view of Sorin's intelligence layer, see [Cross-Market Research](file:///6832099/features/cross-market-research.md).


# Sorin Desktop

The standalone Sorin app is the flagship way to use Sorin — a chat-first interface where research, analysis, planning, and execution all live in the same place.

## What You Get

* Full conversational access to Sorin's intelligence layer
* Portfolio connected, persona active, alerts configured
* Cross-market research, strategy planning, and execution in one flow
* Proactive alerts and narrative tracking tuned to your holdings

## Who It's For

* Active investors who want research, planning, and execution unified
* Users who prefer a chat-first interface over traditional dashboards
* Anyone who wants Sorin as their daily driver for navigating markets

## A Day With the Standalone App

**Morning — what's moving and why:**

> "What changed overnight for my portfolio?"
>
> Sorin summarizes overnight price action, flows, and sentiment across your holdings, flags anything worth attention, and surfaces narratives that shifted.

**Midday — researching a new opportunity:**

> "Give me a full brief on \[new protocol]. Does it fit my portfolio?"
>
> Sorin pulls fundamentals, market structure, and on-chain data, then evaluates the opportunity against your existing exposure and risk profile.

**Afternoon — refining a plan:**

> "Build me a hedged long on restaking. Walk through the tradeoffs."
>
> Sorin drafts a multi-leg strategy, explains each leg, and recalculates as you refine.

**Evening — executing and monitoring:**

> "Let's put it on. Start with Leg 1, smaller size than proposed."
>
> Sorin previews the trade, executes on confirmation, and sets up monitoring for the conditions that would trigger Legs 2 and 3.

**Overnight — proactive protection:**

> Sorin alerts you if funding flips against your hedge, if collateralization thins, or if the underlying narrative shifts meaningfully — no action required on your part to stay informed.

## Key Workflows

### Daily Portfolio Check

Ask Sorin for a daily summary. Over time, it learns the shape of summary you prefer — deeper on certain positions, lighter on others, focused on specific narratives.

### Research Sessions

When you're evaluating something new, Sorin handles the research legwork — cross-referencing data, surfacing risks, and framing the opportunity against your portfolio.

### Rebalancing

Tell Sorin the shape you want your portfolio to take. It plans the trades, previews the cost and impact, and executes on confirmation.

### Event-Driven Trading

Around macro releases, protocol events, or governance decisions, Sorin helps you structure event-specific expressions and manage exposure through the event.

## Why Standalone

The standalone app is where Sorin's full value lands — research and execution in the same place, a living portfolio view, and a persona that gets sharper over time.

{% hint style="info" %}
The standalone app is the default mode for most Sorin users. If you're unsure which mode fits, start here.
{% endhint %}


# FAQ

### General

#### What is Sorin?

Sorin is a single interface where research, analysis, and execution for global digital markets all live together. It adapts to your investment style, tracks your portfolio, and helps you move from insight to action.

#### Is Sorin only for crypto?

Crypto is Sorin's core, but Sorin covers cross-market context too with tokenized assets and prediction markets, for example. The goal is a unified view of your portfolio and the opportunities around it, not just a crypto-only slice.

### Features

#### What can Sorin do?

Sorin covers research, analysis, strategy planning, execution, portfolio tracking, sentiment and narrative tracking, and proactive alerting. See [Core Features](https://claude.ai/introduction/core-features.md) for a full tour.

#### Does Sorin give financial advice?

Sorin provides analysis, research summaries, and strategy proposals tailored to your stated goals and risk tolerance. Sorin is not a licensed financial advisor and its outputs are not investment advice. Always do your own due diligence and consider your own financial situation before acting.

#### Can Sorin execute trades for me?

Yes - through intent-based execution. You describe what you want, Sorin previews it, and it executes on your confirmation. Execution is always a two-step workflow: Sorin proposes, you approve.&#x20;

#### Can Sorin act autonomously?

Yes, within rules you define. Autonomous agent mode lets Sorin act on pre-authorized conditions - rebalancing, hedging, or enforcing guardrails - with configurable confirmation requirements.&#x20;

### Portfolio and Data

#### How does Sorin see my portfolio?

You connect read-only wallet addresses and exchange API connections. Sorin uses these to maintain a unified real-time view of your positions across venues and chains.&#x20;

#### Can I use Sorin without connecting my portfolio?

Yes, but personalization and portfolio-aware features will be limited. Sorin's biggest value comes from being grounded in what you actually own.

### Safety

#### Does Sorin ever execute without my approval?

Only under rules you've explicitly configured in autonomous mode. By default, every trade requires your confirmation.

### Pricing

#### How much does Sorin cost?

Users can join for free then can subscribe for $39/mo for unlimited usage.

### Support

#### Where do I go if something breaks?

Contact support through Discord. For product feedback, product announcements, and general updates, follow [@HeySorinAI](https://twitter.com/HeySorinAI) and [@SaharaAI](https://twitter.com/SaharaAI).


# Open Source Agentic Protocols

### **Introduction**

What if artificial intelligence could not only run itself - but fund and expand it's own evolution?

Sahara x402 turns infrastructure into a self-propelling economy, where agent infrastructures like compute, storage and agent tools provide agent friendly interfaces, paid at true marginal cost.&#x20;

#### **Three extensions on the top of x402 make this possible:**

1. **x/function - serverless:** pay-per-deploy serverless workloads that launch new Agents or functions instantly.
2. **x/function - verifiable**: verifiable execution that proves every result was computed honestly.
3. **x/function - customized policy**: programmable collaboration rules that define how agents trade, share, or restrict their own data and capabilities.

#### **From there emerges a new kind of network:**

Agents that buy, sell, spawn, and verify intelligence without the need of human involvement — brand-new economy of self-funding, self-expanding, self-proliferating agents.

### Extension 1: The x/function-serverless-modular deployment for fair value distribution

#### Background

The x/function extension provides an agent (buyer) a standard way of creating and invoking computation workloads (for example, spawning another agent) by leveraging the existing x402 payment and authentication flow.  Instead of just granting access to a pre-existing API, x/function uses the x402 mechanism to dynamically deploy and execute arbitrarily new, on-demand serverless functions.

In short, x402 standardizes payment-for-access, while x/function extends this to standardize payment-for-deployment-and-access, turning any x402-enabled endpoint into a potential serverless platform for launching arbitrary agents.

#### Who is the x function for?

**AI Developer**: Focus solely on AI innovation, freed from the burdens of server setup, operations, and billing. Our system deploys instances on-demand for each function call, with infrastructure costs directly billed to the buyer.

**Retail User**: x402 unlocks access to highly customized services that simply didn’t exist before, because no one wanted to host or maintain a dedicated server for a tiny, one-off use case.

With Sahara x402’s pay-to-spawn model, anyone can request a personalized agent or micro-service, pay only for the seconds it runs, and retire it immediately after use.

That means features that were once too niche or too expensive to operate, like a custom data filter or a one-time computation via vibe coding, can now be delivered on demand, at a very low and transparent cost on cloud.

#### How it Works

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

1. Client makes HTTP request - The [client](https://docs.cdp.coinbase.com/x402/core-concepts/client-server) sends a standard HTTP request to a service provider for a function call.
2. Service provider asking the serverless infra to do the cost estimation: The serverless infra estimate the cost based on the function call metadata.
3. Serverless infra returns the cost estimation.
4. Server responds with 402 - The service provider returns an [HTTP 402 Payment Required](https://docs.cdp.coinbase.com/x402/core-concepts/http-402) status code with payment details in the response body.
5. Client chooses a payment method.
6. Client prepares and submits a payment payload based on the provided requirements.
7. Service provider verifies the payment payload through the facilitator.
8. Facilitator performs payment verification.
9. Service provider asks the serverless infra to run the function.
10. Serverless infra deploys the function and runs it.
11. Serverless infra fulfills the request with the function result.
12. Service provider settles the payment and confirms transaction completion.
13. Facilitator submits the transaction to the blockchain
14. Transaction is confirmed on the blockchain.
15. Facilitator returns  Payment Execution Response to the service provider.

Service provider returns a 200 OK response to the client with the function result  they requested as the body of the HTTP response, and a X-PAYMENT-RESPONSE header containing the Settlement Response as Base64 encoded JSON if the payment was executed successfully.

### Extension 2: The x/function-verifiable-trustless compute for secure agent workflows

<figure><img src="/files/0yI7jdzICSwWOTPqKI1R" alt=""><figcaption></figcaption></figure>

#### Background

The x/function protocol provides a powerful standard for dynamically deploying and invoking serverless workloads via the x402 payment flow. This enables a "pay-per-deploy" model where users, not developers, fund the computation they consume.

However, the base x/function protocol operates on an implicit trust model. The agent (buyer) paying for the computation must trust that the Function Provider:

1. Executes the correct function metadata.
2. Executes it faithfully without tampering.
3. Returns an honest result.

This trust assumption is a significant barrier for dApps, decentralized systems, and any high-stakes computation where the integrity of the result is critical. A malicious or compromised provider could return incorrect data, posing a severe security risk.

#### The TEE based and verifiable Extension

The x/function/verifiable extension addresses this gap by introducing a standardized convention for verifiable computation. It extends the x/function flow to ensure that the execution of a workload is not just paid for, but cryptographically(or other methods like TEE) proven.

This extension modifies the core x/function interaction:

1. Secure Execution: The Function Provider must perform the deployment and computation within a secure environment (such as a TEE, ZK-VM, or other provable system).
2. Proof of Execution: The provider's response, along with the function's result, must include related work proofs.
3. Client-Side Verification: The agent (buyer) is now required to perform a verification step on these proofs before handling or trusting the API result.

This transforms x/function from a simple pay-for-compute mechanism into a robust "pay-for-verified-compute" protocol, enabling a truly trustless ecosystem for on-demand serverless workloads.

#### Why It Matters

Trustless verification makes x402 ideal for decentralized multi-agent coordination and AI marketplaces. When an agent pays another to compute, you can cryptographically prove that the computation actually happened — and that its result wasn’t tampered with.

This shifts agent interactions from “trusted APIs” to “provable intelligence.”

#### How it Works

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

### Extension 3: The x/function-customized policy-programmable governance for programmable agent workflows

#### **Background**

As autonomous agents begin to exchange data or pay for computation across the Sahara network, a new challenge emerges: not every transaction should follow the same rulebook.

A historical transaction data provider may allow its data to be used for analysis, but never for generation.  A blockchain analytics dataset might allow aggregated insights, but forbid any instance-level address or transaction export. Meanwhile, some agents may simply want every usage recorded transparently on-chain.

Until now, these rules relied on trust or manual verification. The customized policy extension introduces a new standard that lets every agent, function, or dataset define its own “terms of use” policy directly in the protocol. The rules can be checked automatically, creating compliant and verifiable conditions for collaboration.

#### &#x20;How it works

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

Each agent, function, or dataset provider publishes a Policy Manifest - a declaration that describes how its resource may be used by a requesting agent (buyer). Policies can include operational limits (e.g. no data retention), usage boundaries (e.g. output binary labels only), or accountability rules (e.g. log usage on-chain).&#x20;

When another agent wants to use the service, it attaches an Intent Claim - a statement that declares how it plans to use the output. Both the requesting and the providing agents set their acceptable forms of the Claim: from self-reported intents, source code, to TEE enclave measurements. To prevent abuse, every Intent Claim must be cryptographically signed by the same key used for payment, binding the Agent’s declared intent to its verifiable identity on-chain.&#x20;

Both documents - the provider’s Policy Manifest and the requester’s Intent Claim - are evaluated by a  Policy Compliance Verifier, a verifiable program that functions as an off-chain contract. The Policy Compliance Verifier runs inside a secure TEE to protect the confidentiality of the Intent Claims and produce proof of execution. It evaluates the Intent Claim against the Policy Manifest and issues a short-lived authorization key that allows the x/function payment and computation to proceed if the compliance check passes. If not, the request is automatically denied before any data is shared.

The agent, function, or dataset provider (seller) can further ask a requesting agent (buyer) running on a TEE to provide a proof on how a Policy Enforcement Algorithm will be applied to continuously enforce the policy after receiving the requested data.

#### Why it matters

Customized policy brings governance, trust, and autonomy together in one programmable flow. It lets agent, function, and data providers retain fine-grained control while still participating in an open, decentralized compute economy.

For developers, it removes the need for manual permission handling — policies are enforced by the protocol itself. For data providers, it ensures their assets are used according to their defined purpose, with verifiable evidence of compliance. And for the broader Web3 ecosystem, it introduces a trust layer that extends beyond payment: a way to prove why and how a computation took place, not just that it did.

By cryptographically binding intent, policy, and payment in a single verifiable workflow, Sahara x402 transforms agent interaction into a model of accountable collaboration.

### Conclusion

Sahara x402 introduces more than a new payment standard — it defines a new computational economy where agents can deploy, verify, and govern intelligence on their own terms. With serverless pay-to-spawn compute, cryptographically verifiable execution, and programmable policy enforcement, the protocol forms the backbone of a world where autonomous agents collaborate, transact, and evolve without human micromanagement. But this is only the foundation.

Sahara x402 doesn’t just power autonomous computation — it orchestrates entire multi-agent workflows, exactly like the one illustrated in the next page - a user asks a question, a Planner Agent decomposes the task, and every downstream action — from policy checking to social-media querying to TEE-secured graph generation — flows through the same x/function payment layer.

Each agent, tool, and dataset broadcasts its policies; each request carries a signed intent; and a Verifier enforces compliance before any compute occurs. Payments are streamed directly to the developers who built each capability, creating a real-time economy of interoperable, self-contained agents.

This unified protocol turns what used to be a centralized pipeline into a **decentralized, policy-aware, pay-per-compute ecosystem**, where agents can safely collaborate, transact, and verify one another’s work.

Next, we’ll move beyond the concepts and into reality: concrete demos that show how x402 powers agent collectives, verifiable AI pipelines, and self-funding multi-agent ecosystem that grow on their own.

You can also find our Github repo here: <https://github.com/SaharaLabsAI>


# Detailed Use Case & Demo

In our previous article, we introduced Sahara x402 as the foundation for a new kind of computational economy — one where autonomous agents deploy, verify, and govern intelligence through the same universal protocol.

To make the architecture more concrete, let’s walk through a real scenario:\
**a multi-agent payment flow for a data request**, where multiple agents freely access services and pay for them through the x402 serverless protocol — **no permissions, no pre-approvals, no manual setup**.

Here’s how it works:

* **A User** asks a question.
* The **Planner Agent** determines which downstream agents or tools are required.
* The request flows through **x/function**, where policy checks, cost estimation, payments, and verifiable execution occur.
* **Service Providers** run inside a TEE, compute the result, and receive payment instantly.
* The entire network can verify both the computation and the payment, ensuring the result is trustworthy.

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

#### User Flow

1. User asks a question to the planner Agent.
2. Planner Agent discovers data service provider - Social Agent/Onchain Agent.
3. Request to the social agent for tweets data
4. Social agent spawned accordingly and start the computation
5. Social agent publishes the payment bill: 0.002 USDC(According to the actual CPU workload and LLM token consumed).
6. Planner Agent paid 0.002 USDC successfully to Social Agent’s address
7. Everyone would be able to verify if this payment transaction actual competed and tweets data is actually delivered
8. The whole process is running on the TEE

#### TEE Security Execution Phase

* Agent A's TEE environment receives the payment request.
* It verifies the service provider's identity and pricing rationality in an isolated environment.
* It generates an ERC-3009 authorized signature without exposing the private key to the external environment.
* The TEE output contains proof of payment authorization.

#### Payment Verification Phase

* Service provider B verifies the payment authorization through the facilitator.
* The TEE proof is submitted to the on-chain verification contract.
* The multi-agent network confirms the consistency of the payment state.

### Demo For Extension 1

Try the `x/function` enabled dApp:[ https://x-function.saharalabs.ai/](https://x-function.saharalabs.ai/)

This reference implementation demonstrates the power of **user-funded computation**. Instead of developers managing always-on servers, the protocol allows users to trigger service deployment and execution via a small payment. It’s a true serverless model with no DevOps overhead for the creator.

This dApp turns the x402 payment flow into a serverless launchpad.

* **Devs**: You define the code. The user pays the server bill.
* **Users**: You get on-demand agents/services that run, complete your task, and vanish.

No setup. No subscriptions. Just pay-per-execution.

### Demo For Extension 2

**Agent Deployment and A2A Protocol Support**

The demo below illustrates the process of deploying an agent and highlights the supported agent-to-agent (A2A) protocol, showcasing how it facilitates seamless communication between agents in a network. This demonstration aims to provide a practical understanding of both the deployment process and the protocol's integration.

{% embed url="<https://drive.google.com/file/d/1g_VM3r9cG4AifOxMwyyoXXt-GcdX6OqP/view?t=1>" %}

### Demo For Extension 3&#x20;

The x/function/customized-policy adds a programmable rules layer that lets providers define and enforce “terms of use” for their data, models, and tools.

#### Demo Scenario

In this demo, we deploy a cryptocurrency question-answering LLM agent that processes crypto-related queries from users. The agent has access to a synthetic marketplace where four synthetic tools provide different cryptocurrency data and analytics services.

Each tool provider seeks to ensure their data is used in a safe and compliant manner by the requesting agent. To enforce this, they define usage policies that restrict how the provisioned data can be used. This synthetic environment and the objectives are illustrated below.

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

With the x/function/customized protocol, the tool providers can cryptographically verify:

1. Integrity of Policy Compliance Checking: A trusted policy compliance function is correctly applied to evaluate whether the requesting agent's intended actions comply with the specified policies.
2. Integrity of Policy Enforcement: A trusted policy enforcement mechanism is correctly applied during agent execution.

#### Workflow

In this implementation, the agent execution, policy compliance checking, and policy enforcement are all managed by an open-source hypervisor H running within a Trusted Execution Environment (TEE). After compliance checks pass, the hypervisor generates TEE attestation quotes containing the compliance results and passes them to the tools (or agents) in the marketplace. The tool providers verify the RTMR (Runtime Measurement Register) values and quote signatures in these attestations against the expected open-source hypervisor measurements.&#x20;

In this way, the tool providers can cryptographically verify:

1. The hypervisor's code integrity (via RTMR matching the known open-source build)
2. That proper compliance checks were performed before their tools were invoked as specified in the hypervisor
3. That the same hypervisor will continue to enforce policies after tool execution

This provides end-to-end assurance that policies are both checked before and enforced after tool invocation.

The workflow is illustrated as follows:

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

In conclusion, this approach ensures robust security and compliance by validating hypervisor integrity and adherence to policies throughout the tool execution process. For detailed information, refer to the our github repo here: <https://github.com/SaharaLabsAI/x-function/blob/main/policy/README.md>.


# Data Services Platform

**Welcome to the Sahara AI Data Services Platform — your gateway to the AI economy.**

\
Here, your knowledge and expertise don’t just matter — they move the needle. By contributing, you’re helping build a more **equitable, user-centric** AI ecosystem and earning meaningful **rewards** along the way.

Whether you’re collecting, refining, or labeling datasets, every task you complete shapes the future of  artificial intelligence — and your role in it is direct and valuable.&#x20;

Today, most AI development is largely limited to developers. [**Sahara AI**](https://saharaai.com/) is changing that. W**e are building an inclusive ecosystem that bridges this gap, enabling anyone to participate in and benefit from our platform from day 01.**&#x20;

All your contributions are securely recorded on the **Sahara Blockchain**, bringing transparency, accountability, and trust to the entire process. &#x20;

To learn more about how blockchain is transforming data labeling into a more inclusive, transparent, and rewarding process, check out our blog:[ https://saharalabs.ai/blog/blockchain-ai-data-labeling](https://saharalabs.ai/blog/blockchain-ai-data-labeling).

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


# Quick Start Guide

1. **Open your browser and go to** [**https://app.saharaai.com/data-services-platform**](https://app.saharaai.com/data-services-platform)
2. **Connect your on-chain wallet to create a profile.**
3. **Complete your profile, and select your interests.**
4. **Use the left navigation menu to visit Data Services.**
5. **Find tasks and earn rewards.**


# Token Gate Verification

**Important: in order to access Data Services Channels in our Discord server, users must complete the following token verification process. This is a new addition beginning in Season 3.**

1. **Sign into the Data Services platform using your whitelisted wallet address** <https://app.saharalabs.ai/>

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

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

2. **Mint the Sigil of the Initiate SBT to your connected wallet**

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

<figure><img src="/files/9WeWd615wlKv37GIlN7L" alt=""><figcaption></figcaption></figure>

3. **Open our Discord and navigate to the #collabland-join channel.**
4. **Select “Let’s Go!” and follow the prompts to verify your account and complete the process.**

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

5. **Look for the data services channels to connect with other whitelisted community members**.

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


# MyShell Task Instructions

Welcome to the MyShell annotation tasks on Sahara’s Data Services Platform!&#x20;

We’re excited to have you join our community of contributors helping shape the future of AI development. These tasks involve capturing user interactions across different software environments, including Ubuntu, Windows, and macOS. In the name of transparency, the related software package is open source on [GitHub](https://github.com/agi-agent/screentracker/blob/main/README.md).

Your contributions not only enhance AI capabilities but also earn you valuable Sahara Points and exclusive rewards. Let’s get started!

## For Windows Software

### Important Note

* This task is open to Windows users only.
* This time, only recording on one designated software is required in this task, please read recording content requirements carefully.
* If you have previously applied for a similar assignment, please ensure you remove any older software installations and download the updated versions specified below. Recording with an outdated version of "ScreenTracker" will be rejected.
* &#x20;If you have two screens, make sure your work happens on the main screen to produce valid results.
* Ensure your recordings are varied—repetitive workflows may lead to disapproval due to low data quality.
* Resubmitting the same ZIP file (even across tasks) will not be approved!

### Source of Files

* For Windows Users, Obtain the application package using \[[Download Link](https://s-public-assets.s3.us-west-2.amazonaws.com/client_V5_win.zip)].&#x20;
* Download and Unzip the “client\_v5” File.

### System Requirements

Confirm that your computer has a minimum of 5GB disk space, as the application stores track data in “trackDB” and screenshots in the “\_cache” directory.

### Run the Recording App

* Double-click on “ScreenTracker\_v5”  to open the recording program. Please disregard the pop-up and select (“More Info”, "Run Anyway")
* Click the “Start Recording” button to begin. Follow the Data Content and Quality Requirements while recording.
* Press End Recording” to close the program when you’re finished.

### Recording Length Requirement&#x20;

You can record for as long as you like. The recording will be automatically split by 5‑minute, with each 5‑minute counting as a valid datapoint.\
\
Remember that mouse clicks, keyboard typing, and mouse movements around the screen all produce screenshots. A 5-minute period of real working scenarios will definitely generate enough screenshots to support your submission.

### Recording Content Requirements

* Record your work flow using software such as Microsoft Word, PPT or Excel.

#### Example Recording Content (but not limited to those operations):

* "Make the line spacing of first two paragraph into double line spacing"
* "Change the 2 in \\"H2O\\" to a subscript."
* "Change the font to \\"Times New Roman\\" throughout the text."
* “Center align the heading”

### Data Quality Criteria

Maintain high accuracy in your recordings. Specifically, ensure that no more than 10% of the recorded interactions or steps contain errors.&#x20;

Examples of errors include *unintended mouse clicks, accidental keyboard inputs, incorrect selections, repetitive meaningless actions*. Aim to clearly capture intended and purposeful actions to produce reliable data. Recording activities in unrelated software applications will result in your submission being disapproved.

### Run the Select & Export App

* Double-click on “TrackManager\_v5” to start the export program when you finish recording.
* Enter your whitelisted wallet address in both the “Username” and “Password” fields.
* Click the “Login” button to access the main page. If the same wallet address is already logged in, click the “Logout” button first to avoid an error message. If the issue persists, close the software, log out, and then try logging in again.
* Check if you have the “Export select track” button.(If you cannot find this button, simply drag and zoom the main interface and it should appear at left bottom corner)
* Click the “Load exist track:” button. Your recordings are automatically segmented into 5‑minute tracks. Each batch is marked with a timestamp on the right-hand side of the application. For example, a timestamp like “2025-03-07-15-45-00-000” indicates that the first batch started on March 7th at 15:45.
* From the list, select a specific 5‑minute track. Click the entry to view detailed track data, including a preview of the corresponding event screenshot.

### Deleting Track Data&#x20;

* If you wish to remove data, select the corresponding 5‑minute track from the list.
* Click the “Delete select track” button to remove both the cursor and screenshot data for that period.
* (Optional) Restart “TrackManager\_v5” to confirm the data deletion.
* (Optional) Note that the “Delete select track” button does not physically remove the recorded data from your device; it only prevents the “TrackManager\_v5” from accessing the data for your privacy. To completely delete recorded data, you must manually remove the files from the “\_cache” folder.

### Export Track Data (Download ZIP File for Task Completion)

* Click the “Export select track” button.
* Choose the 5-minute trajectory data. (Note: Before proceeding, manually check if any sensitive information is in the screenshot preview by clicking the selected track entry)
* Select your preferred directory for saving the ZIP file.
* The application will compile the required data and screenshots into a ZIP file. Please be patient, as this process contains a lot of data processing and may take a long time.
* When the Zipping process is complete, a pop up will appear to inform you that the zipping is successful.
* Only ZIP files generated by TrackManager\_v5 will be accepted. The exported filename should look like below format: xx-xx-xx-xx-xx-xx\_XXXX-XX-XX-XX-XX-XX-XXX.&#x20;

**Example** : AC-19-8E-2C-40-47\_2025-03-27-15-00-00-000).&#x20;

Please do not modify the filename or any content within the ZIP file, as doing so may result in disapproval.

### Submission

Upload your ZIP file to the Data Service Platform and wait for approval.

## For Ubuntu Virtual Machine

This task requires you to perform all required operations on an Ubuntu 22.04 Virtual Machine (VM). After launching the recording tracker application on your Windows or Mac system, you must switch to your Ubuntu VM in full-screen mode to perform the required tasks. In other words, you will use the Screen Tracker on Windows or Mac to record activities that are performed within a full-screen Ubuntu 22.04 VM.

### Quick Guide to Setting Up Ubuntu 22.04 VM for Beginner

* Download VirtualBox : [VirtualBox Official](https://www.virtualbox.org/wiki/Downloads)
* Installation Guide: [VirtualBox User Manual](https://www.virtualbox.org/manual/UserManual.html)
* Download Ubuntu 22.04 LTS: [22.04 LTS](https://ubuntu.com/download/desktop)

#### Video Tutorials:

* [For Windows Users](https://www.youtube.com/watch?v=yYbUO7Vtfus)
* [For Mac Users](https://www.youtube.com/watch?v=LjL_N0OZxvY)

### Important Note&#x20;

* This task requires you to perform all required operations on an Ubuntu 22.04 Virtual Machine (VM).
* Please use the full-screen Ubuntu virtual machine interface to ensure the data you provide meets the required quality standards.
* This time, only recording on one designated software is required in this task, please read recording content requirements carefully.
* If you have previously applied for a similar assignment, please ensure you remove any older software installations and download the updated versions specified below. Recording with an outdated version of "ScreenTracker" will be rejected.
* &#x20;If you have two screens, make sure your work happens on the main screen to produce valid results.
* Ensure your recordings are varied—repetitive workflows may lead to disapproval due to low data quality.
* Resubmitting the same ZIP file (even across tasks) will not be approved!

### Source of Files

* For Windows Users, Obtain the application package using \[[Download Link](https://s-public-assets.s3.us-west-2.amazonaws.com/client_V5_win.zip)]. Download and Unzip the “client\_v5” File.
* For Mac Users, Obtain the application package using \[[Download Link](https://s-public-assets.s3.us-west-2.amazonaws.com/Mac_v5.zip)]. Download and Unzip the “client\_v5” File.

### System Requirements

Confirm that your computer has a minimum of 5GB disk space, as the application stores track data in “trackDB” and screenshots in the “\_cache” directory.

### Run the Recording App

* Double-click on “ScreenTracker\_v5”  to open the recording program. Please disregard the pop-up and select (“More Info”, "Run Anyway")
* Click the “Start Recording” button to begin. Follow the Data Content and Quality Requirements while recording.
* Press End Recording” to close the program when you’re finished.

### Recording Length Requirement&#x20;

You can record for as long as you like. The recording will be automatically split by 5‑minute, with each 5‑minute counting as a valid datapoint.

Remember that mouse clicks, keyboard typing, and mouse movements around the screen all produce screenshots. A 5-minute period of real working scenarios will definitely generate enough screenshots to support your submission.

### Recording Content Requirements

* Record your work flow using software such as Chrome, Gimp, or Impress.&#x20;

#### Example Recording Content (but not limited to those operations):

* "Enable the 'Do Not Track' feature in Chrome to enhance privacy "
* "Change settings of chrome so it will bring back the last tab when computer restart "
* "Browse the natural products database"
* “Find a large car with the lowest price from next Monday to next Friday in Zurich.”

### Data Quality Criteria

Maintain high accuracy in your recordings. Specifically, ensure that no more than 10% of the recorded interactions or steps contain errors. Examples of errors include unintended mouse clicks, accidental keyboard inputs, incorrect selections, repetitive meaningless actions. Aim to clearly capture intended and purposeful actions to produce reliable data. Recording activities in unrelated software applications will result in your submission being disapproved.

### Run the Select & Export App

* Double-click on “TrackManager\_v5” to start the export program when you finish recording.
* Enter your whitelisted wallet address in both the “Username” and “Password” fields.
* Click the “Login” button to access the main page. If the same wallet address is already logged in, click the “Logout” button first to avoid an error message. If the issue persists, close the software, log out, and then try logging in again.
* Check if you have the “Export select track” button.(If you cannot find this button, simply drag and zoom the main interface and it should appear at left bottom corner)
* Click the “Load exist track:” button. Your recordings are automatically segmented into 5‑minute tracks. Each batch is marked with a timestamp on the right-hand side of the application. For example, a timestamp like “2025-03-07-15-45-00-000” indicates that the first batch started on March 7th at 15:45.
* From the list, select a specific 5‑minute track. Click the entry to view detailed track data, including a preview of the corresponding event screenshot.

### Deleting Track Data

* If you wish to remove data, select the corresponding 5‑minute track from the list.
* Click the “Delete select track” button to remove both the cursor and screenshot data for that period.
* (Optional) Restart “TrackManager\_v5” to confirm the data deletion.
* (Optional) Note that the “Delete select track” button does not physically remove the recorded data from your device; it only prevents the “TrackManager\_v5” from accessing the data for your privacy. To completely delete recorded data, you must manually remove the files from the “\_cache” folder.

### Export Track Data (Download ZIP File for Task Completion)

* Click the “Export select track” button.
* Choose the 5-minute trajectory data. Note: Before proceeding, manually check if any sensitive information is in the screenshot preview by clicking the selected track entry.
* Select your preferred directory for saving the ZIP file.
* The application will compile the required data and screenshots into a ZIP file. Please be patient, as this process contains a lot of data processing and may take a long time.
* When the Zipping process is complete, a pop up will appear to inform you that the zipping is successful.
* Only ZIP files generated by TrackManager\_v5 will be accepted. The exported filename should look like below format: xx-xx-xx-xx-xx-xx\_XXXX-XX-XX-XX-XX-XX-XXX.&#x20;

**Example** : AC-19-8E-2C-40-47\_2025-03-27-15-00-00-000). Please do not modify the filename or any content within the ZIP file, as doing so may result in disapproval.

### Frequently Asked Questions

#### Q: I'm experiencing an Error 500 (Invalid credentials) when trying to log in. What should I do?&#x20;

A: Please ensure you're using all lowercase characters for your wallet address. This resolves the Error 500 login issue in most cases.

#### Q: Why am I getting a "file size too small" error when uploading my zip file?&#x20;

A: This indicates your zip file doesn't contain enough data to support effective model training. Remember that mouse clicks, keyboard typing, and mouse movements around the screen all produce screenshots. Please follow the task instructions regarding content requirements and perform your regular operations with designated software applications. A 5-minute period of real working scenarios will definitely generate enough screenshots to support your submission.

#### Q: Is this recording software safe to use? My antivirus flagged it as suspicious.&#x20;

A: We understand your concern. Since our recording software is newly developed and hasn't been publicly released yet, some antivirus programs may flag it as potentially dangerous. We want to assure you that we fully respect your privacy - all recording happens locally on your machine, giving you complete control over what gets uploaded. For full transparency, the software package is open source on [GitHub](https://github.com/agi-agent/screentracker/blob/main/README.md).


# Video Guide

{% embed url="<https://drive.google.com/file/d/1KLsQyzd9ED_-WJqCLdW60J_V8zq6bLax/view?usp=sharing>" %}


# MIA Task Instructions

### Summary

Complete MIA's Twitter engagement and AI platform exploration to earn 15 SAHARA tokens and $3.5 worth of MIA tokens.

### Description&#x20;

#### Discover and experience MIA through this comprehensive two-part challenge:

* Social Connection: Follow MIA on Twitter, engage with their content, and receive heart credits as proof of feedback
* AI Platform Exploration: Connect the same Twitter account to MIA's platform and collect AI-generated insights
* Dual Rewards: Earn both SAHARA tokens (15) and MIA tokens ($3.5 value) for completing both phases
* Real AI Experience: Test MIA's investment advisor and provide feedback to help improve their AI technology
* Community Building: Join MIA's growing ecosystem while earning valuable cryptocurrency rewards

### Reward Distribution

* SAHARA Tokens (15): Airdropped to your DSP-bound wallet address
* MIA Tokens ($3.5 value): Airdropped to your MIA-registered wallet address (can be same or different from DSP wallet)
* Distribution Timeline: Rewards will be airdropped one week after the official task collection period ends
* Wallet Flexibility: You may use the same wallet for both platforms or different wallets for each reward type

#### Important Notes:

* Both Twitter engagement and AI platform exploration must be completed with the same Twitter account
* Each wallet address can only be used once for MIA platform registration
* Genuine engagement and quality interactions are required for reward eligibility
* Mismatched Twitter accounts between phases will result in no rewards

### Task 1 : Connect MIA on X to Earn

**Objective:** Connect with MIA on Twitter/X platform and engage with their content to receive MIA heart credits.

#### Instructions:

1. Follow @MIA\_Official X Account at[ https://x.com/mwa\_ia](https://x.com/mwa_ia)
2. Like + Comment/Quote MIA's Posts to receive MIA's reply with ❤️ heart credits

* Engage meaningfully with their content
* MIA will respond with heart credits after a brief time delay ( 3 - 4 minutes)

3. Submit your Comment/Post Link

* After you successfully receive heart credits reply
* Copy the direct link to your comment/quote tweet (the one that successfully received heart credits after a short period of delay)
* Paste the link in the submission field

#### Submission Requirements:

* Direct link to your comment or quote tweet (that successfully received heart credit) on MIA's post
* Ensure your engagement is genuine and follows community guidelines

**Note**: Before proceeding with the second part of the MIA task, ensure you have already completed the MIA twitter interactions to receive your reward.

### Task 2 : Explore MIA on AI.AC to Earn MIA Insights&#x20;

**Objective**: Experience MIA's AI agent platform and complete multiple interactions to earn rewards.

#### Instructions:

1. Connect Your X Account

* Use the SAME Twitter account&#x20;
* Navigate to[ MIA Home Page](https://ai.ac/MIA)
* Bind your wallet address\&Twitter account to your account, this wallet address will be used to receive reward from MIA ( Please note: Each wallet address can only be used once to register a MIA account.)

2. Explore and Interact with MIA Agent

* Navigate to the[ MIA Invest Page](https://ai.ac/MIA/invest)
* Trigger minimum 3 MIA insights with the AI agent by navigating around this page
* Each insight is the investment suggestion initiated by MIA on the top-right corner after a short period of thinking.

3. Acquire Share Record

* After collecting 3+ insights, click the "[Earn](https://ai.ac/MIA/earn)" button
* There is a 'Share Record' button in the top-right corner of the Task 2 card.
* Click the button and copy this record link for submission

4. Submit Your Record

* Return to Data Service Platform
* Provide interaction feedback (optional: like/dislike suggestions)

#### Important Requirements:

* Account Matching Required: The Twitter account used for MIA website registration MUST match the account from you used in twitter interactions with MIA.
* Mismatched accounts will result in NO REWARD
* Minimum 3 meaningful insights from MIA agent required
* Quality engagement preferred over quantity

**Verification Process**:&#x20;

Your submitted record link will be verified against:

* Twitter Account consistency
* Minimum insights count (3+)

#### Reward Distribution:

* SAHARA Tokens (15): Airdropped to your DSP-bound wallet address
* MIA Tokens ($3.5 value): Airdropped to your MIA-registered wallet address (can be same or different from DSP wallet)
* Distribution Timeline: Rewards will be airdropped one week after the official task collection period ends
* Wallet Flexibility: You may use the same wallet for both platforms or different wallets for each reward type


# Solo AI Task Instructions

### Pre-Exam Phase

* Format: 5-song examination with obvious genre & gender selections
* Purpose: Filter out low-quality annotators and bots

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

### Task Content:   &#x20;

* Gender classification: distinguish the singer gender presented in the song
* Comprehensive genre and musical label collection: Multiple-choice genre selection accommodates subjectivity

Consensus Model: 5 independent responses per one mp3 will be collected to establish genre consensus and increase data quality.\
(A few genre type demo are listed below screenshots, there will be more in the real Task)

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

<figure><img src="/files/0bwhtdOgAEQX3iVR5xDw" alt=""><figcaption></figcaption></figure>

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


# Camp Network Task Instructions

### **Task: Camp Network Remix IP Creation Challenge**

**Objective:** Create and mint an AI-generated IP on Camp Network's Remix platform, then share your creation on X to earn rewards.

#### Description: Unleash your creativity with Camp Network's innovative IP creation platform:

* AI-Powered Creation: Use cutting-edge AI tools to generate unique intellectual property on the Remix platform
* Blockchain Minting: Mint your custom IP directly on Camp Network's blockchain infrastructure
* Creative Freedom: Choose from AI-generated options and personalize with your own naming and branding
* Social Showcase: Share your creation with the community on X to demonstrate your creative achievement
* Token Economy: Experience the future of IP creation while earning cryptocurrency rewards
* Tutorial Support: Follow comprehensive video guidance for seamless platform navigation

#### Instructions:

1. **Create Your Camp Network Account**

* Navigate to[ https://remix.campnetwork.xyz/](https://remix.campnetwork.xyz/)
* Set up your account and connect your wallet

2. **Get Camp Faucet Tokens**

* Visit[ https://faucet.campnetwork.xyz/](https://faucet.campnetwork.xyz/)
* Request faucet tokens needed for minting operations
* Wait for tokens to be deposited to your wallet

3. **Start IP Creation Process**

* Return to the Remix platform
* Click the "Mint" button to begin remix IP creation
* Follow the guided process to generate your unique IP

4. **Generate and Select Your IP**

* Use the AI generation tools to create your remix IP
* Browse through the AI-generated options
* Select your preferred IP design
* Give your IP a creative and meaningful name

5. **Share Your Creation on X**

* Post your newly created IP on X (Twitter)
* Include relevant hashtags and mention @campnetworkxyz
* Copy the direct link to your post

6. Submit Your Entry

* Return to Sahara Data Service Platform
* Paste your X post link in the submission field

#### Submission Requirements:

* Direct link to your X post showcasing your minted IP
* Ensure your post is public and follows community guidelines
* Your IP must be successfully minted on Camp Network

#### Important Notes:

* Each account can remix twice
* Video tutorial available at:[ https://x.com/campnetworkxyz/status/1940775927883202785](https://x.com/campnetworkxyz/status/1940775927883202785)
* Complete the entire process from account creation to social sharing
* Quality and creativity in IP naming encouraged

#### Verification Process: Your submission will be verified against:

* Successful IP minting on Camp Network
* Valid X post link with proper showcase
* Account authenticity and engagement quality

#### Reward Distribution:

* 7.5 Camp Token and 2 SAHARA: Airdropped to your DSP-bound wallet address
* Distribution Timeline: Rewards will be distributed one week after the official task collection period ends
* Additional Camp Network rewards may apply based on their reward structure

<br>


# IO.net Task Instructions

### Overview

This task involves submitting high-quality video clips with accurate, physically-grounded captions to help train advanced AI video generation models. Your submissions directly impact the quality of next-generation AI video capabilities.

### Technical Specifications

* Resolution:
  * Landscape: 1280×720 or 1920×1080 (16:9 aspect ratio)
  * Portrait: 720×1280 or 1080×1920 (9:16 aspect ratio)
* Format: H.264 codec in MP4 container
* Frame Rate: Minimum 30fps
* Length: 5-10 seconds recommended (no hard limit if quality and consistency maintained)

### Content Requirements

#### Shot Consistency (Critical)

* Each clip must contain only **one continuous shot** from a single camera instance
* Camera can move naturally (pan, tilt, zoom) but must represent uninterrupted recording
* Avoid combining multiple shots - this creates "teleporting camera effects"
* Submit multiple shots of the same scene as separate clips

#### Quality Standards

* Natural color grading with consistent white balance
* Audio properly synchronized (if present) and free of clipping
* Clear, focused subject matter without heavy compression
* Stable lighting with no flickering or exposure jumps
* Smooth playback without missing frames or jump cuts

### Caption Writing Guidelines

#### Format Requirements

Captions must be single, natural language descriptions that flow as coherent sentences or paragraphs. Do not use separate attributes or bullet points.

#### Physical Grounding (Essential)

✅ **GOOD - Physically Grounded**:

* "A person cuts metal with a plasma torch, creating bright sparks that fall to the concrete floor"
* "The woman's purple scarf flows behind her as she pushes through the crowded subway platform"

❌ **BAD - Not Physically Grounded:**

* "With tools like this, all materials will be easy to carve according to your needs"
* "This technique ensures perfect results every time"

**Rules for Physical Grounding**:

* Describe only what is visually observable in the video
* Avoid predictions, capabilities, or abstract concepts
* Every word should relate to concrete visual elements
* No claims about effectiveness, ease, or outcomes beyond what's shown

#### Caption Structure Examples

“a video of iron being carved with sharp cutting tools, the cuts are perfect and precise in a metal working shop, indoor lighting, extra details about what's in the background of the video, the camera slowly zooms.”&#x20;

“an anime of a woman wearing a purple scarf who is trying to run through a crowd of people. she bumps into several people while making it through. the camera is stationary. above them a sign says "Ochanomizu Station" in English and Japanese lettering.”&#x20;

“an iphone video of a woman wearing a purple scarf who is trying to run through a crowd of people. she bumps into several people while making it through. She holds the camera as she walks and the camera follows while facing her.”\
\
“An 3D animation of a girl running away from a kneeling woman in a kimono. a beautiful grassy meadow and sky make up their environment.”

#### Required Elements in Captions

1. **Video Style/Format:** Specify if it's footage, 3D animation, anime, professional cinematography, etc.
2. **Subject Actions:** Describe what people/objects are doing using active verbs
3. **Environment Details:** Include setting, lighting conditions, background elements
4. **Camera Behavior:** Mention if camera moves, remains stationary, or follows subjects
5. **Visual Specifics:** Colors, textures, readable text, distinctive objects

#### Caption Variety for Training

**Mix detail levels across your submissions:**

* **Verbose:** Include rich environmental details, specific materials, lighting descriptions
* **Moderate:** Focus on main action with key environmental context
* **Simple:** Concise descriptions of primary visual elements

This variety helps AI models generalize better across different prompting styles.

### Content Diversity Requirements

Submit varied content across:

* **Demographics:** Different ages, ethnicities, clothing styles
* **Environments:** Indoor/outdoor, urban/rural, different lighting conditions
* **Subjects:** People, animals, objects, nature, technology
* **Camera Styles:** Handheld, tripod, drone, close-up, wide shots
* **Video Styles:** Professional, amateur, animation, different aspect ratios

### Evaluation Criteria

#### Caption Accuracy (≥95% Required)

Your descriptions must precisely match the video content. Mismatched captions result in automatic rejection.

#### Physical Grounding Check

Every caption element must correspond to something visually present in the video. Abstract concepts or unobservable claims will be flagged.

#### Content Variety Score

Multiple similar submissions (same person, location, or scenario) reduce data quality and may be rejected.

#### Technical Compliance

All videos must meet resolution, format, and consistency requirements.

### Submission Process

1. **Edit your video** to ensure single-shot consistency and technical requirements
2. **Write your caption** following physical grounding and natural language guidelines
3. **Review both video and caption** for accuracy and compliance
4. **Submit for verification** and await approval

### Common Rejection Reasons

* Multiple shots combined in one clip
* Captions describing things not visible in the video
* Abstract or predictive language in descriptions
* Poor video quality or technical non-compliance
* Repetitive content without sufficient variety

### Success Tips

* Watch your video multiple times before writing the caption
* Read your caption while watching to ensure perfect alignment
* Use specific, concrete visual language
* Vary your submission types to maximize training value
* Focus on what the AI model needs to "see" to recreate similar content

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


# xFractal Task Instructions

### Task Instructions (selected one row as sample datapoints)

#### **TASK: Verify Cryptocurrency Price Prediction Accuracy**

**Instructions:** You are tasked with verifying whether a binary prediction (0 or 1) for cryptocurrency price movement is correct. A prediction of 1 means the price will go UP, a prediction of 0 means the price will go DOWN or stay the same.

**Your Task:** Calculate the price difference between 'price\_before' and 'price\_after' to determine if the prediction was accurate. If 'price\_after' is blank/missing, use the 'price\_before' value from the next day's row (since predictions are made at the same time daily).

#### **Verification Logic:**

* If price\_after > price\_before: actual result should be 1 (UP)
* If price\_after <= price\_before: actual result should be 0 (DOWN/SAME)
* Compare your calculated result with the given 'predicted' value
* Answer whether the prediction was CORRECT or INCORRECT

#### **Data for this task:**

Token: $HYPERSKIDS

Date Predicted: 01/05/2025 13:00:00

Date For: 02/05/2025 13:00:00

Price Before: $0.00756331

Price After: $0.00744087

Predicted: 0

**Question:** Based on the price movement from $0.00756331

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

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

#### Task summary

You're verifying if crypto price predictions are spot-on by crunching the numbers to see if the actual price movement matches the binary prediction!

#### **Task Descriptions**

You are provided with cryptocurrency price data including a before price, after price, and a binary prediction (0 for down/same, 1 for up). Please calculate the actual price direction and determine if the original prediction was correct or incorrect.

#### Reward Allocation

Once the labeling task is finished. A model pipeline will be applied and reward will be distributed by Sahara within 3 days.<br>


# Sahara Rewards

SAHARA are the unit of reward within the Sahara AI ecosystem. On the Data Services Platform, you earn SAHARA by submitting datapoints to complete tasks. The amount of SAHARA you receive per datapoint will vary on the task’s complexity, the quality of the datapoint, and any bonus points accrued.  &#x20;

In addition to SAHARA, you may also be eligibile to earn partner rewards on dual-reward tasks.

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


# Task-Specific Sahara Points (SP)

### **Base Points**

Base points are granted for every datapoint submitted that passes the quality benchmarks set for that task. More complex tasks deliver higher base points. These rewards are flexible and will be actively adjusted on a weekly basis to ensure fairness and reflect task difficulty.

### **Bonus Points**

Higher-quality datapoints that exceed predesignated bonus benchmarks result in bonus points. Bonus points are calculated as a percentage of the base points earned for that datapoint. More complex tasks deliver higher bonus points.

### How are Sahara Points (SP) calculated?

Sahara Points are calculated per contribution. The amount of Sahara Points you receive for each contribution can vary depending on the quality of that contribution.  How many Sahara Points a contribution receives is calculated as follows:

**Sahara Points= Base Point + Bonus Point** *(if applicable)*

**Example** - High Quality Datapoints:

For an Advanced-level task, if a datapoint passes quality standards with high accuracy, your total SP for that datapoint could look like the following:

* Base Points: 20 SP
* Bonus Points: 5% of base points, totalling 1 SP.
* Total SP earned for the datapoint = 20 + 1 = 21 SP

Note: The actual reward values for tasks are adjusted on a weekly basis; this example is provided solely for clarity and explanation.

### What Does “High Accuracy” Mean?

* High accuracy refers to the degree to which your submissions align with the task’s predefined quality benchmarks.
* Tasks are reviewed against specific criteria, and submissions that meet or exceed the required accuracy level are considered high-quality.
* High accuracy is critical for receiving Bonus Points.

### Daily Datapoints Limit

Each user has a daily limit on the number of datapoints they can submit across different task difficulties:

* **Beginner Tasks**: Highest allowance of datapoints.
* **Intermediate Tasks**: Moderate allowance.
* **Advanced and Expert Tasks**: Lowest allowance but highest potential rewards.

This balance ensures fair earning opportunities while maintaining data quality for the platform.

### Daily Workload Limit

* To maintain fairness in task allocation, we are applying a maximum workload per user to ensure that genuine contributors who provide high-quality data receive fair opportunities.&#x20;
* The workload limit refreshes daily at UTC 00:30 AM, allowing contributors to continue submitting new datapoints the following day.

### **End-of-Season Rewards**

At the end of each season, participants will receive bonus rewards in the form of Sahara Points and advance to higher user tiers based on their final leaderboard ranking. Rewards are proportional to ranking, encouraging consistent participation and high performance throughout the season.

Leaderboard rewards will be distributed at the start of the next season. As seasons progress, certain task categories—such as Advanced and Expert tasks—will become exclusive to higher-tier users. These tasks offer greater rewards but also come with increased difficulty.

Use each season to hone your skills, build experience, and secure your spot in higher tiers to unlock even more exciting opportunities ahead!

Note: Sahara Points earned during the off-season will not affect leaderboard rankings.

<br>

<br>


# Tracking Your Progress

Users can track their progress using the dashboard on the homepage of the platform. The dashboard provides information about your total SAHARA and partner rewards earned from completing tasks.

<figure><img src="/files/3jLPrzgPuY8Z9PglDgP4" alt=""><figcaption></figcaption></figure>

### Reward Claiming

All task reward records are displayed on the DSP homepage, categorized by token type.

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

**USD1 and SAH**

#### Freeze status

* After the “Set up Pool” button is clicked at PMT (DSP backend), the amount will be locked for 7 days. For example, an internal claiming procedure request submitted on July 28 will be eligible for claiming on August 4.
* If the smart contract does not have enough funds or internal approval on the distribution is blocked after a 7 days lock period.  “Freeze” status will remain until the smart contract is ready and approved.

#### Claimable status

* Users can manually claim the reward by clicking the “Claim” button.
* Each claim withdraws the full available amount for the selected token; partial withdrawals are not allowed.
* Only the BSC network is supported at this time.&#x20;
* Users are responsible for paying the required gas fees during the claim process. A Display ’To be paid by user upon payout’ will show up

#### Claimed status

* Rewards are claimed successfully.

**Partner Tokens:**

* For partner tokens, the system will ONLY display task-level reward logs.
* Users cannot claim these tokens through DSP.

\ <br>


# User Tiers

User Tiers define your status and privileges within the Sahara AI platform. As you ascend through the tiers and increase your ranking, you'll unlock greater opportunities, exclusive benefits, and access to higher-value tasks.

### Where to Check Your Tier *(coming soon)*

* **On the Platform:** Your assigned tier will appear on your user profile.
* **Discord Badge**: Your assigned tier will appear in the official Sahara AI Discord server.
* **Soul-Bound Tokens (SBTs)**: Designated tiers are tied to specific SBTs, serving as a permanent representation of your tier within the ecosystem. You can view your SBT in the wallet you used to sign up for Sahara.

### Overview of User Tiers

**Initiate**

Every user starts as an Initiate, with full access to climb the leaderboard and claim achievements.

#### Demigod

Demigods are elite contributors in the Sahara AI ecosystem, recognized for their exceptional consistency and commitment. Initiates that reach to top 1000 of the leaderboard will ascend to Demigod.

### Benefits:

* **Access to Premium Tasks**: Retain access to premium tasks.
* **Daily Bonus Data Points**: Extra datapoints are allocated daily for additional earning potential.
* **Private Community Channel:** Access an exclusive channel for insights, updates, and high-level discussions with the team and other advanced users.

### Ascending

To ascend from Initiate to Demigod, users must achieve an exceptional level of participation and performance. This can be done by:

* **Earning a sufficient amount of Sahara Points (SP)**: SP is earned by completing tasks.
* **Top performer on the leaderboard:** Ending the season ranked within the  top 1000 on the leaderboard can also secure your ascension to Demigod.

### Why Tiers Matter

* **Enhanced Earning Potential with Advanced Tiers**: Ascending to higher tiers unlocks increased earning opportunities, including premium tasks and exclusive End-of-Season Rewards, and even more benefits in future seasons.
* **Stay Ahead of the Curve:** Ascending to Demigod will give you a significant advantage in upcoming seasons, with increased earning opportunities and community recognition.


# Achievements

Achievements in the Sahara AI ecosystem are critical milestones that help users progress by granting Experience Points (EXP). They do not provide Sahara Points (SP) but instead serve as the foundation for progression and recognition.

### Why Achievements Are Important

EXP is the sole metric that determines your ranking on the leaderboard, and only users with higher leaderboard rankings can earn SP and ascend to higher roles given by the End-of-Season Rewards.

### Season 3 Achievements

* Titan’s Vigil
* Forge of Perseverance
* Oracle of Knowledge
* Sigil of the Initiate&#x20;
* Ascension of the Chosen

### Titan’s Vigil

#### EXP Awarded: 1 EXP per day

#### How It Works:

* Check in daily on the platform (31 days total).
* Your streak is counted in UTC time; ensure to check in before the UTC day resets.
* Missing a single day will NOT break your streak but will reduce the total EXP you can earn and disqualify you from claiming the achievement.

#### How to Claim:

* Navigate to the Achievement daily.
* Click on the Claim button.
* For your first claim, you'll be redirected to <https://faucet.saharalabs.ai/>
* Simply connect your wallet and follow the prompts to claim 1 SAH
* Once done, you'll be able to complete the claim and it will be credited to your account
* Be sure to switch your wallet network back to the SAH testnet before claiming to avoid unnecessary gas fees.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfyjb-JHY2A8m0aluwtjphLJW3JR-fsBeYNJFs0ITIpvosMmK-0dcBZle3ka9TOk9vp0PlBjG6mOjqJDKVzKTUjXitaNElu83cAufCTaY4bsMbReNdusDO5w9cWh2mjwVLYxivjtQ?key=DLiH9jDyBLRs7q9hJQMeKxnV" alt=""><figcaption></figcaption></figure>

### Forge of Perseverance

#### EXP Awarded: 5 EXP per day

#### How It Works:

* Earn at least 20 Sahara Points daily through task completion (31 days total).
* The 20 SP requirement resets daily at UTC time.
* Missing a single day will NOT break your streak but will reduce the maximum EXP you can claim in this achievement.

#### How to Claim:

* After you earned at least 20 Sahara Points, navigate to the Achievement daily.
* Click on the Claim button.
* The achievement will unlock automatically, and EXP will be credited to your account.
* For your first claim, you'll be redirected to <https://faucet.saharalabs.ai/>
* Simply connect your wallet and follow the prompts to claim 1 SAH
* Once done, you'll be able to complete the claim and it will be credited to your account
* Be sure to switch your wallet network back to the SAH testnet before claiming to avoid unnecessary gas fees.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2fbTD9iUkrJvhRmm7OG9vWmoD7aYmoaO7tZ_Vx2Q9aejCe5JOlxbHU8cn8GoVVhNvJKyv8pzmItnmmx14W1IGUGU6zDqzGAOkN65yWYdTt4EGuY_G24FRuyEsH98u26aLlZ77?key=DLiH9jDyBLRs7q9hJQMeKxnV" alt=""><figcaption></figcaption></figure>

### Oracle of Knowledge

#### EXP Awarded: 30 EXP per claim

#### How It Works:

* Accumulate at least 100 Sahara Points in any one of the following knowledge areas: Prompt Collection, Model Optimization, or Persona Emulation.
* Only points earned in one specific area count toward the achievement.

#### How to Claim:

* Once the 100 SP threshold is reached for one knowledge area, navigate to the Achievement.
* Click on the Claim button.
* For your first claim, you'll be redirected to <https://faucet.saharalabs.ai/>
* Simply connect your wallet and follow the prompts to claim 1 SAH
* Once done, you'll be able to complete the claim and it will be credited to your account
* Be sure to switch your wallet network back to the SAH testnet before claiming to avoid unnecessary gas fees.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXewDO-hJm_qNOkDsY90pXynGshocTpcO9WRCKC3NOYJWCL1qb8Qx8WysHWyo6K_ARFsPYm_v60a0zeWgdS_K9q_Z8ZlyGlAOEOd3sbwD9OaWeYVXD9Hgxh5QVm06-IFwxD1eOaE1w?key=DLiH9jDyBLRs7q9hJQMeKxnV" alt=""><figcaption></figcaption></figure>

### **Sigil of the Initiate**

**Reward: Direct SBT Minting**

**How It Works:**&#x20;

Complete the onboarding process to become eligible for this achievement.

**How to Claim:**

1. Once you complete the onboarding process, navigate to the Achievement section.
2. Click on the Claim button.
3. For your first claim, you’ll be redirected to[ ](https://faucet.saharaa.info/)<https://faucet.saharalabs.ai/>
4. Connect your wallet and follow the prompts to claim 0.1 SAH.
5. After completing this step, your claim will be processed, and the Sigil of the Initiate NFT will be minted and credited to your account.
6. Important: Before claiming, switch your wallet network back to the SAH testnet to avoid unnecessary gas fees.

### **Season 3 Ascenion of the Chosen**

**Reward: Direct SBT Minting**

**How It Works:**

Only users who ranked in the Top 1,000 on the leaderboard from the previous season are eligible to claim this achievement.

**How to Claim:**

1. If you secured a Top 1,000 position in the previous season, navigate to the Achievement section.
2. Click on the Claim button.
3. For your first claim, you’ll be redirected to <https://faucet.saharalabs.ai/>.
4. Connect your wallet and follow the prompts to claim 0.1 SAH.
5. Once completed, your claim will be processed, and the Season 3 Ascension of the Chosen NFT will be minted and credited to your account.
6. Important: Before claiming, switch your wallet network back to the SAH testnet to avoid unnecessary gas fees.

### Claiming

In Season 3, any time you claim EXP, you'll be required to use the testnet faucet and sign a transaction in your on-chain wallet.&#x20;

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

### FAQ

#### Can I claim the SBT for an achievement even if I don’t fully complete it?

Yes, as long as you have made some progress (non-zero progress) on an achievement, you can claim its SBT at the end of the season.

#### Can I earn achievements in multiple knowledge areas for Oracle of Knowledge?

Yes, you can earn achievements in three areas of knowledge. However, each achievement requires accumulating 100 SP in a single knowledge area to claim its EXP and associated rewards.

#### Do achievements reset after the season ends?

Yes, achievements reset at the start of a new season. However, your NFTs earned from the previous season will remain as permanent proof of your progress.<br>


# Sign In & Onboarding

### How to Create a Web3 Wallet (MetaMask & WalletConnect)

Follow the steps carefully to create a secure Web3 wallet and connect it to platforms using MetaMask and WalletConnect.

#### How to Set Up a MetaMask Wallet (Browser Extension)

MetaMask is a popular Web3 wallet that allows you to interact with decentralized applications (dApps) and manage cryptocurrencies. Follow this step-by-step guide to set up your MetaMask wallet and connect it to Sahara.

**Step 1: Install MetaMask**

1. Download and install the official MetaMask extension for your preferred browser, such as Google Chrome or Firefox. Link here: <https://metamask.io/download/>
2. Once installed, open MetaMask and click the “Get Started” button to begin setting up your Ethereum wallet.

**Step 2: Create a New Wallet**

1. Click the “Create a Wallet” button on the next screen.
2. Choose a strong password and confirm it to create your account. This password will be used to access your wallet on the current device.
3. MetaMask will generate a 12-word Secret Recovery Phrase.&#x20;

Write down all the words carefully in the exact order shown on your screen.&#x20;

**Important**: This phrase is essential for restoring your wallet if you lose access to your device.

Store the recovery phrase in a safe and private location. Never share it with anyone, as it provides full access to your wallet funds.

4. Click “Next” and confirm your backup by selecting the words in the correct order.

**Step 3: Connect MetaMask to** [**Sahara**](https://saharaai.com/)

1. On the Sahara Data Service Platform, choose MetaMask from the sign-in options.
2. Confirm the connection request in your MetaMask extension.

### How to Use WalletConnect (A Wallet Aggregator for Mobile Wallets)

WalletConnect is a protocol that allows you to securely connect various wallets (including MetaMask) to decentralized applications. Follow this guide to set up and connect your mobile wallet using WalletConnect.

**Step 1: Download and Install a Web3 Wallet (Mobile App)**

To use WalletConnect, you need a crypto wallet first. Here’s how to create one using MetaMask as an example:

1. Go to the App Store (iOS) or Google Play Store (Android).
2. Search for MetaMask and download the official app.
3. Open the app and tap “Get Started.”
4. Choose “Create a New Wallet.”
5. Set a Password: Create a secure password for accessing your wallet on your mobile device.
6. Save Your Secret Recovery Phrase (12 Words):

Write down the 12-word Secret Recovery Phrase shown on the screen.

Store it offline in a secure location.

DO NOT share this phrase with anyone, as it can be used to access your funds.

Confirm the recovery phrase in the correct order to finish the wallet setup.

**Step 2: How to Connect Wallet Using WalletConnect (Mobile Method)**

Now that you have a wallet, you can connect it to a platform using WalletConnect.

Using Your Phone to Connect:

1. Open the Web3 platform you want to connect to on your computer or mobile browser.
2. Find the “Connect Wallet” button (usually on the top right corner).
3. Select WalletConnect from the list of wallet options.
4. A QR Code will appear on the screen.

**Using MetaMask Mobile App to Scan the QR Code:**

1. Open your MetaMask app.
2. Tap the Menu Icon (three lines) in the top-left corner.
3. Select WalletConnect.
4. Tap “New Connection” and scan the QR code shown on the Web3 platform.
5. Confirm the connection request inside the MetaMask app.

You’re now connected! Your wallet can interact with the platform for transactions.

**Step 3: Use WalletConnect to sign in**

1. Choose WalletConnect from the sign-in options.
2. A QR code will appear on the screen.
3. Scan the QR code.
4. Your wallet will ask for permission to connect. Confirm the connection.

### Using an Existing On-Chain Wallet

When you first visit the login page you will be greeted by a familiar pop-up. This will give you the option to sign in. Please use your whitelisted wallet to sign in. There are several ways you can authenticate yourself on our platform. But in this Season , you will only be able to log-in via your whitelisted wallet.

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

Your wallet serves as a place to store and manage your digital assets on the blockchain. You can authenticate by scanning a QR code with any WalletConnect-compatible wallet, or by using apps and/or browser extensions. Our platform supports a number of on-chain wallets, including: Metamask, Coinbase Wallet or Smart Wallet, Torus Wallet and many others.&#x20;

<figure><img src="/files/naa09cpM2CNoGZqJjXSl" alt="" width="356"><figcaption></figcaption></figure>

### Set Up Your Profile&#x20;

Your profile contains simple information, such as your name, birth year, preferred language, gender, and country. However, not all information is required.

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

### Select Your Interests

The next step is to select your interests. Please choose five categories *(by clicking on the corresponding images)* that best suit your interests and expertise. Doing so will help us determine which categories we should add more of in the future.

A checkmark will be displayed in the upper right-hand corner of your selections. If you wish to deselect an interest, click on it a second time. Clicking it again will toggle it back on again.

<figure><img src="/files/3xK7yvYUFx3A74qnAh5F" alt=""><figcaption></figcaption></figure>

Completing your profile and selecting your interests will give you a Welcome Gift of 100 points.&#x20;

Congratulations! You are ready to begin your Sahara journey!

### FAQ

#### Can I change my sign-in method?

Unfortunately, you cannot change your initial sign-in method after setting up your account. If you wish to use a different sign-in method, you will need to create a new account from scratch.

#### Is it safe to connect with my on-chain wallet? Will my funds be compromised if I use this method for sign-in?

Connecting your on-chain wallet for sign-in is safe. We do not have access to the contents of your wallet or any other sensitive information. Your funds and data remain under your control and are not compromised by the authentication process.

#### Can I log in to my account on different devices?

Yes, you can use any device to access your account as long as you remember your login credentials, allowing you to participate in tasks and monitor your progress anytime, anywhere.

#### How can I check my digital wallet balance and withdraw funds?

You can use any third-party digital wallet application to manage your cryptocurrency balance. Log in to the third-party wallet using your Sahara platform wallet address. This allows you to check your balance and make transactions as needed.

#### Can I modify the wallet address in my account? &#x20;

No, the wallet address is the unique identifier for your account.

#### What should I do if I'm stuck on an annotation task?

If you're unsure, click the “Read Instructions” button for detailed guidelines. If you still have questions, you can search online or discuss them in the official Discord channel for further assistance.

#### Can I switch between the roles of Annotator and Reviewer during a task?

No, roles cannot be switched during a task. Roles are automatically assigned by the system based on platform needs, your skills, and task requirements. Users are unable to manually choose or change their roles once assigned.

#### Can I choose my role in a task?

No, it is assigned to you randomly by the system to optimize task distribution and maintain high-quality results.


# Platform Navigation

Welcome to Data Services, a collaborative space designed for users to discover, apply for, and successfully complete a wide range of tasks. Engage in various activities to earn Sahara Points. Our user-friendly interface simplifies the process of finding opportunities tailored to your interests and skills.


# Profile

### Basic Info

In the Basic Info section, if you haven't uploaded a profile image, it will default to the first character of your name. You can modify your name, birth year, gender, language, and country. Please note that name, birth year, and gender are required fields.

<figure><img src="/files/3kg6kjooTtdnoxuN72as" alt=""><figcaption></figcaption></figure>

### Contact

You can fill in your contact information on this page including Email, Telegram, Youtube, Facebook, WhatsApp, and iMessage.

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

### Wallet Address

Our sign-in system is powered by Web3Auth, a custom wallet infrastructure designed for on-chain wallets and applications.&#x20;

This wallet acts as your personal digital account. Your wallet address can be found between “Wallet Address” and “Instructions”.&#x20;

Be sure to keep your login details safe. Our platform has no access to any funds or assets received by your wallet.

<figure><img src="/files/6IFreRwmXtloQmlABQmt" alt=""><figcaption></figcaption></figure>

### FAQ

#### Can I modify the wallet address in my account? &#x20;

No, the wallet address is the unique identifier for your account.

<br>


# Main Menu

In the upper right-hand corner, you'll find buttons leading to the Notification Center (the bell icon), a link to the Help Center, a feedback form, and your total Sahara Points. The profile button is located next to these.

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

### Notification Center

This contains a list of notifications about new tasks, task processes, completed tasks, bonuses, suspensions, news, point updates, test results, and other information.

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

### Help Center&#x20;

This provides links to the User Guide, Glossary, Frequently Asked Questions (FAQs), and other helpful resources.

### Leave Feedback

You can leave feedback at any point, especially during annotation or review, by clicking on the pen and paper icon in the upper right-hand corner.

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


# Dashboard

You can navigate to your dashboard overview by clicking either the "Dashboard" icon or Sahara Logo in the top left corner of the page. Here, you will find your historical earnings based on the tasks you've completed.

<figure><img src="/files/3jLPrzgPuY8Z9PglDgP4" alt=""><figcaption></figcaption></figure>


# Data Services Page

The Data Services Page is where you can browse all the labeling tasks available to you.

It features a list of tasks categorized into three sections: **New tasks, In Progress,** and **Closed**.&#x20;

Moreover, a search bar located in the upper right-hand corner allows you to locate a specific task.

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

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


# Annotator Guidelines

### The following guidelines must be adhered to:

#### **1. Understandability**

Submissions must be written in English and should be clear and coherent—no gibberish is allowed.

#### **2. Relevance**

Content must align with the project’s topic.

**Acceptable Example**

**Task**: Conversation Eject Button - Dating Dialogue Don’ts

**Acceptable Content:**

“The endless debate about pineapple on pizza always makes me look for the nearest exit."

**Rejection Example**

**Unacceptable Content:**

"I hate stuff."

#### **3. Optional Questions:**

Questions not marked with a red (\*) are optional. These optional fields are intended to provide reasoning for the required fields. This is not a bug.

<br>


# Reviewer Guidelines

### The following guidelines must be adhered to:

#### 1. Understandability

Submissions must be written in English and should be clear and coherent—no gibberish is allowed.

#### 2. Relevance

Content must align with the task topic.

#### Acceptance Example:

**Task**: *Memorable NPCs*

**Acceptable Content:** Lines featuring characters like Jinx from *League of Legends*&#x20;

(even though Jinx is not typically considered an NPC).

#### Rejection Example:

**Task**: *Web3*

**Unacceptable Content:** Lines featuring characters like Jinx from *League of Legends*.

#### 3. Optional Questions:

Questions not marked with a red (\*) are optional and do not require review.

These optional fields are intended to provide reasoning for the required fields, and it is by design that there is no “Approve/Disapprove” button for them. This is not a bug.

#### 4. Handling Web Links in Submissions:

If a submission includes a link, reviewers should open it to verify its relevance.

If the link does not work (e.g., a 404 error), the datapoint should be considered poor-quality and disapproved.


# Task Overview & Pre-Exam

Before applying for certain tasks, you'll need to take a quick pre-task exam. This exam is designed to ensure you’re ready for the task and capable of meeting the requirements. Don’t worry—it’s relatively simple! The accuracy needed to pass may vary depending on the task, so be sure to review the guidelines provided.

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

Once you pass the pre-task exam, you’re all set to click the “Apply” button. At this point, the system will assign you a role based on the platform’s needs.

### There are two possible roles:

**Annotator**: Responsible for labeling data according to the task requirements.

**Reviewer:** Responsible for reviewing an annotator’s work to ensure accuracy and maintain quality.

These roles are assigned automatically by the system to optimize task distribution and maintain high-quality results. At this time, roles cannot be chosen manually. Please be sure to review the [guidelines](/user-guide-data-services-platform/data-services-page/reviewer-guidelines).

Finally, your rewards for completing tasks will be determined by the amount outlined in the task description. Be sure to read the task details carefully to maximize your potential!

To ensure success, take your time to thoroughly review the provided guidelines and instructions before starting the exam. Careful preparation can make all the difference!

<br>


# Task List

The task list allows you to browse and manage tasks based on your preferences.&#x20;

**Tasks can be sorted by**:

**Difficulty**: Beginner, Intermediate, Advanced, Expert

**Data Type**: Video, Text, etc.

**Knowledge**: AI, Creator, etc.

<figure><img src="/files/39P7ltmQsKdXuZFoaBq8" alt=""><figcaption></figcaption></figure>


# Task Categories

### **New Tasks**

This section displays the tasks you haven’t started yet.

### Starting a New Task

1. Take Exam: Every task requires you to pass a pre-task exam to ensure you’re prepared.
2. Click the “Take Exam” button to begin.&#x20;
3. Review the guidelines carefully, as you need to meet the specified pass rate to proceed.
4. Appl&#x79;**:** After passing the exam, click the “Apply” button to start the task. The system will automatically assign your role as an Annotator (data labeling) or Reviewer (checking accuracy)

### **In Progress**

This section displays the tasks you are currently working on, which can be sorted by Annotating or Reviewing.

#### Annotating:

On the In Progress page, click the “Annotate” button to begin the task. Carefully follow the provided instructions to complete the annotations. You’ll encounter these question types:

1. Single Choice: Select one correct option from the available choices.
2. Multiple Choice: Select all applicable options.
3. Number Input: Enter the required numeric value.
4. Text Input: Provide a text-based answer.
5. Ranking: Drag and drop items to rank them in the required order.
6. Linear Scale: Adjust the slider to select the appropriate value.

If you're unsure about the task, click the “Read Instructions” button at the upper-left of the page to view detailed guidelines.

#### Reviewing:&#x20;

On the In Progress page, click the “Review” button to begin the task. Carefully follow the provided instructions and assess the submitted work. Based on your evaluation:

* Click “Approve” if the submission meets the required quality standards.
* Click “Disapprove” if the submission does not meet the standards.

If you're unsure about the task, click the “Read Instructions” button at the top of the page to view detailed guidelines. Ensure your decisions are accurate and align with the task guidelines to maintain data quality.

### Closed

This section allows you to view the tasks you have successfully completed.

#### Search Function&#x20;

Use the search box in the upper-right corner to find tasks by name.

#### Filters

You can filter tasks by data type or knowledge area, making it easy to locate tasks relevant to your expertise and interests.

**Note**: The search box and task tag filtering cannot be used simultaneously.

\ <br>


# Task Cards

Each task card provides essential details to help you choose and manage tasks effectively:

**Task Description**: A brief overview of the task.

**Estimated Earnings**: Shows the potential reward amount which is influenced by the task's difficulty and bonus rewards.

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

**Remaining Datapoints**: Indicates the number of datapoints left to complete for the task.

### Interactive Options:

#### Take Exam&#x20;

Clicking “Take Exam” takes you to the Pre-Task phase, where you must complete an exam to qualify for the task. You only have one chance to pass the exam. The Pre-Task phase serves as the preliminary stage where users are afforded the opportunity to engage in practice prior to the commencement of the main task.&#x20;

#### Apply

Once you pass the Pre-Task exam, click “Apply” to have your role (Annotator or Reviewer) automatically assigned.

#### Review Button

If your assigned role is Reviewer, clicking the “Review” button allows you to begin evaluating submitted work.

#### Annotate Button

If your assigned role is Annotator, clicking the “Annotate” button takes you to the annotation interface to label data according to the task requirements.

#### Task Title&#x20;

Clicking the task title opens a larger view with detailed task information.


# Task Page

When you click on a new task, you will be directed to the **Task Detail Page**, which provides the following information:

**Task Title**: The name of the task.

**Remaining Datapoints**: The number of datapoints left to complete.

**Estimated Earnings**: The potential rewards you can earn based on task difficulty and accuracy.

**Task Deadline**: The end date and time for the task.

**Data Type**: The type of data to be annotated or reviewed (e.g. Text, Video, Links, Hybrid, etc.).

**Knowledge**: The specific knowledge or expertise needed for the task.

**Difficulty**: The complexity level of the task (Beginner, Intermediate, Advanced, or Expert).

**Progress**: Your progress on this task.

Similarly, this page also appears after you click the task that you have passed the pre-task exam and are assigned a role (Annotator or Reviewer). It shares similarities with the New Task Detail Page but includes additional information on the right-hand side:

**Progress**: Displays your current status (e.g., "Applied for Task," "Begin Work," or "Completed").

**Datapoints Submitted**: Indicates the total number of datapoints you have completed.

**Datapoints Approved**: Shows how many of your submissions have been approved based on quality standards.

**Accuracy**: For annotators, it represents the percentage of your annotations that have been approved. For reviewers, it reflects the consistency between your decisions and those of other reviewers regarding the same annotation. For example, if 50% of other reviewers approved the same annotations that you approved, your accuracy would be 50%.

### Premium Task Access and User Tier Requirements

**For Users with the Demi-God SBT:**

* You can take the exam immediately without any additional steps.
* The task card will feature a distinct identity-exclusive visual style for easy recognition.
* It will be pinned to the top of your task list for priority access.

**For Users Without the Demi-God Token:**

* The task card will display a message indicating that access is restricted due to the lack of the required token
* It will be placed at the bottom of your task list with appropriate messaging.

Additionally, Premium tasks will be labeled "Demigod Exclusive" at the top of the task title for clear identification.

### FAQ

#### Why was I banned?

In most cases, this is due to extremely low performance in data tasks.

#### Is crafting jailbreaking prompts legal?

Crafting jailbreaking prompts on our platform is legal as we are doing this for ethical, educational, or research purposes. We support responsible exploration and testing of AI systems to improve their safety, robustness, and understanding. By participating in this effort, you are contributing to the advancement of AI safety and ethical research.

#### What are the criteria for reviewing the jailbreaking prompt?

We use a multi-step process to evaluate and select jailbreaking prompts:

* Initial Screening: Prompts are checked for spelling, length, readability, and originality.
* Qualifier Round: A small set of prompts is tested for effectiveness. Those meeting the success rate threshold move forward.
* Final Round: We have curated a dataset of queries  (in the hundreds) to test against, and jailbreaking 10% of the queries is regarded as a passing prompt

#### Why don't I have access to the task?

Access to some premium tasks is limited to users with specific identities. If you don’t have access, it means your user identity from the last season wasn’t high enough to claim a higher identity (like Demigod).

To unlock access to these premium tasks in the next season, rank up this season and ascend to Demigod. Only Demigod users can access these exclusive tasks.

#### Will being banned from one task affect my ability to complete other tasks?

No, being banned from one task will not affect your ability to complete other tasks. However, if you receive bans on multiple tasks, it may result in a platform ban for 7 days, or potentially a permanent ban.

#### I do not agree with the ban. Is there a way to appeal?

If you feel that you have been unfairly banned, please submit a ticket to our team on Discord.

#### How can I improve the quality of my data and minimize bans?

To improve data quality and avoid bans, focus on accuracy rather than speed, ensuring your work meets or exceeds the task’s quality standards. Carefully follow the provided guidelines, avoid any form of cheating, and double-check your submissions for errors before completing the task. Delivering consistent, thoughtful, and genuine work is essential to maintaining a strong standing on the platform.

#### Can I submit multiple datapoints for the same task?

Yes, you can submit multiple datapoints for the same task as long as you stay within the daily submission limits and maintain the required quality standards for each submission.

#### If I fail the pre-task exam, can I try again?

No, you cannot retake the pre-task exam. Each user has only one attempt to pass the exam for a task. If you fail, you will no longer have access to that task.

<br>


# Achievements Page

The Achievements Page helps you track and claim your progress on the Sahara AI platform.

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


# My Level

The "My Level" section displays your username, level, and badge. It also tracks your EXP progress (e.g., 36/40) toward levelling up. Click "More Info" for level details or "EXP Record" to view your EXP history.

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


# In Progress Achievements

### Titan's Vigil

* Requires checking in daily for 31 days.
* If you check in daily, you can claim EXP rewards every day as you accumulate progress.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXexqsimp3qK14Hy2E-jN0YtTUDAP6JgFWRVWWeWMHJGNknlOcbgv3laRNloO6tnfVK6XrZw9k-kMRNOj6pE9Owd1uMPm64gFYmacjfU0KB5AcRFsj4QKilVthwjbIFCPiweX1MGRw?key=DLiH9jDyBLRs7q9hJQMeKxnV" alt=""><figcaption></figcaption></figure>

### Forge of Perseverance

* Requires earning at least 20 Sahara Points daily for 31 days.
* Similar to Titan’s Vigil, EXP rewards are claimable every day.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdx1gWttG5E5ynJD1hW0y9y-sZQY7P2h-GcHz46asVd2sLPmrATDuNVh9QishLa4s74fC16LSi0iAx8hwXIQVLCs5lb6KLTTTtdiENZVvqenMBUglQjr9oBR1uSUVxVDw6YV5dhmA?key=DLiH9jDyBLRs7q9hJQMeKxnV" alt=""><figcaption></figcaption></figure>

### Oracle of Knowledge

* Earn **100 / 200 / 300** Sahara Points in **Tech Chronicles, Model Optimization, or Pawspective** to claim **30 / 10 / 5 EXP**, respectively. You can claim EXP for progress in one Knowledge before fully completing the achievement.
* You can claim partial rewards for progress in one Knowledge before fully completing the achievement.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXelKQnVYQZeGdrxqzvZoNpDQBpBrt5kRjHnJoSLoNyfcs-9l3YVCjkzDoJ_oSsm0muS2UnfaQuU1AkvWJQZW-AiXctKN1-pYpXdoyvR0Srwgexm1klpMuuyUJbWiPGVXUMvoeMsPQ?key=DLiH9jDyBLRs7q9hJQMeKxnV" alt=""><figcaption></figcaption></figure>

### Sigil of the Initiate

* Requires completing the onboarding process.

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

### **Forge of Exalted Perseverance**

Requires earning *at least* **40 Sahara Points** daily in one of the two Knowledges: **Prompt Collection** and **Persona Emulation**. You can claim **3 EXP daily** for progress in one Knowledge before fully completing the achievement. (Sahara Points earned from either of these two knowledges will contribute to the progress of this achievement)

### **Oracle of Exalted Knowledge**

Requires earning *at least* **300 Sahara Points** in one of the two Knowledges: **Prompt Collection** and **Persona Emulation**. You can claim **10 EXP** for progress in one Knowledge before fully completing the achievement.

### **Exalted Legacy - Demigod only**

Requires submitting at least **45 / 90** datapoints across any Demigod-Exclusive tasks. You can claim **2 / 3 EXP** for progress in one Knowledge before fully completing the achievement.

### Achievement Claiming Logic:

1. Task Not Completed (Before UTC 12:00 am): If your task is not fully completed (e.g., awaiting review by others), points won’t be awarded, and achievements cannot be claimed. Once the task is completed and points are settled, you can claim the achievement for the previous day.
2. Task Completed (Before UTC 12:00 am): If your task is fully completed and reviewed before UTC 0:00, points will be awarded during the daily calculation. You can claim the achievement immediately after points are awarded.<br>


# Closed Achievements

The Closed Page displays achievements from past events that have already ended. You can review these completed achievements to track your participation and progress in previous activities.

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

### FAQ

#### How do I track my achievements?

You can track your progress on the Achievements Page under the "In Progress" tab. It displays all active achievements, their requirements, and your current progress.

#### What happens if I miss a day for achievements like Titan’s Vigil or Forge of Perseverance?

Missing a day will not reset your progress. However, you will not be able to claim the full 31 EXP for these achievements if you miss any days.

#### How does Oracle of Knowledge work?

The Oracle of Knowledge requires you to earn 100 Sahara Points in a specific knowledge category (e.g., Tech Chronicles, Model Optimization, or Persona Emulation). You can claim rewards for partial progress within one knowledge category but at least one knowledge category must be fully completed to mint the NFT.

#### What is the difference between “In Progress” and “Closed” achievements?

* In Progress Achievements: These are active achievements you are currently working on.
* Closed Achievements: These are from past events that have ended. You can review these to track your participation and progress but cannot claim additional rewards.

#### What happens if I don't claim my rewards before the deadline?

If you don’t claim your rewards before the deadline, you will lose the opportunity to claim the corresponding EXP. Be sure to claim them in time!<br>


# FAQs

## General

### What is the true value of AI data annotation?&#x20;

The true value of AI data annotation lies in providing high-quality training data, which is critical for enhancing the accuracy and performance of AI models. Accurate annotations help models correctly interpret and process various types of information, leading to improved real-world application outcomes.

### Why is the Sahara AI Testnet more challenging than regular platforms?

The Sahara AI Testnet is designed to ensure that the collected data achieves high-quality application performance in real-world scenarios, making the data genuinely useful and valuable. The heightened difficulty not only enhances the precision of AI Web3 annotation but also ensures participants generate more impactful training data.

&#x20;[Sahara AI](https://saharaai.com/) aims to pioneer advancements in AI Web3 annotation technology by promoting inclusive participation and efficient data services, empowering the community to collaboratively build a high-quality AI ecosystem.

### What kind of AI data annotation product does Sahara AI aspire to create?

Sahara AI aims to develop a data annotation product that emphasizes both accuracy and high-quality data output, while also fostering community participation and feedback. Its vision is to lead the advancement of AI Web3 annotation technology by promoting inclusive participation and efficient data services.&#x20;

Sahara AI seeks to ensure participants receive fair recognition and rewards for their contributions, empowering the community to collaboratively build a high-quality AI ecosystem.

### What benefits can participants gain from Sahara AI data annotation?

1. Based on your task completion rate, accuracy, and consistency, the platform will automatically calculate your earned Sahara points and achievements, which can be redeemed for various rewards.
2. High-quality contributors can unlock seasonal bonuses, climb the leaderboard rankings, and receive public recognition. Repeated low-quality contributions may result in participation restrictions to protect the contributions of high-quality users.

### Will Sahara AI tasks remain this challenging in the future?

As Sahara AI progresses and incorporates community feedback, task difficulty will be continuously adjusted. As users become more familiar with the annotation requirements and processes, their efficiency and proficiency will improve. Incremental learning by high-quality contributors will gradually reduce the overall task difficulty. In the future, more user-friendly products catering to a wider audience will be introduced.

### What criteria does Sahara AI use to select participants for this test?

1. Active engagement with Sahara AI’s social media activities.
2. Extensive knowledge and experience in AI and Web3 fields.
3. Potential to contribute high-quality data.
4. Prohibition of bot-driven data manipulation.

### Will Sahara AI be open to more participants in the future?

Following this internal testing phase in Q1, Sahara AI will refine its product based on community feedback to accelerate its public release. Future plans include gradually opening participation opportunities to more users to attract a broader range of community members. This will contribute to building a stronger and more diverse data annotation ecosystem.

## User Tiers&#x20;

### What is the difference between task-specific roles (Annotators & Reviewers) and Hierarchy Based User Tiers (Initiates & Demigods)?

#### Task-Specific Roles (focus on the tasks within the platform):

* Annotators: Label and organize raw data for AI training.
* Reviewers: Validate and refine annotations to ensure quality and accuracy.

#### Status-Based Tiers (reflect a user’s privileges and earning potential within the platform):

* Initiates: Entry-level users with access to tasks and leaderboard participation.
* Demigods: Elite contributors with exclusive access to premium tasks, bonus rewards, and private channels.

## Achievements

### Can I claim the NFT for an achievement even if I don’t fully complete it?

Yes, as long as you have made some progress (non-zero progress) on an achievement, you can claim its NFT at the end of the season.

### Can I earn achievements in multiple knowledge areas for Oracle of Knowledge?

Yes, you can earn achievements in three areas of knowledge. However, each achievement requires accumulating 100 SP in a single knowledge area to claim its EXP and associated rewards.

### Do achievements reset after the season ends?

Yes, achievements reset at the start of a new season. However, your NFTs earned from the previous season will remain as permanent proof of your progress.

### How do I track my achievements?

You can track your progress on the Achievements Page under the "In Progress" tab. It displays all active achievements, their requirements, and your current progress.

### What happens if I miss a day for achievements like Titan’s Vigil or Forge of Perseverance?

Missing a day will not reset your progress. However, you will not be able to claim the full 31 EXP for these achievements if you miss any days.

### How does Oracle of Knowledge work?

The Oracle of Knowledge requires you to earn 100 Sahara Points in a specific knowledge category (e.g., Prompt Collection, Model Optimization, or Persona Emulation). You can claim rewards for partial progress within one knowledge category but at least one knowledge category must be fully completed to mint the NFT.

### What is the difference between “In Progress” and “Closed” achievements?

* In Progress Achievements: These are active achievements you are currently working on.
* Closed Achievements: These are from past events that have ended. You can review these to track your participation and progress but cannot claim additional rewards.

### What happens if I don't claim my rewards before the deadline?

If you don’t claim your rewards before the deadline, you will lose the opportunity to claim the corresponding EXP. Be sure to claim them in time!

## Sign-In & Onboarding&#x20;

### Can I change my sign-in method?

Unfortunately, you cannot change your initial sign-in method after setting up your account. If you wish to use a different sign-in method, you will need to create a new account from scratch.

### Is it safe to connect with my on-chain wallet? Will my funds be compromised if I use this method for sign-in?

Connecting your on-chain wallet for sign-in is safe. We do not have access to the contents of your wallet or any other sensitive information. Your funds and data remain under your control and are not compromised by the authentication process.

### I have been whitelisted, but I cannot log in to the platform using my social account/email/phone. What should I do?

The wallet address is the only criterion for whitelisting you, so please use the whitelisted wallet address to log in to the platform.

### Can I log in to my account on different devices?

Yes, you can use any device to access your account as long as you remember your login credentials, allowing you to participate in tasks and monitor your progress anytime, anywhere.

### How can I check my digital wallet balance and withdraw funds?

You can use any third-party digital wallet application to manage your cryptocurrency balance. Log in to the third-party wallet using your Sahara platform wallet address. This allows you to check your balance and make transactions as needed.

### Can I modify the wallet address in my account? &#x20;

No, the wallet address is the unique identifier for your account.

### What should I do if I'm stuck on an annotation task?

If you're unsure, click the “Read Instructions” button for detailed guidelines. If you still have questions, you can search online or discuss them in the official Discord channel for further assistance.

### Can I switch between the roles of Annotator and Reviewer during a task?

No, roles cannot be switched during a task. Roles are automatically assigned by the system based on platform needs, your skills, and task requirements. Users are unable to manually choose or change their roles once assigned.

### Can I choose my role in a task?

No, it is assigned to you randomly by the system to optimize task distribution and maintain high-quality results.

### Will the rewards be different for two roles?

No, the rewards are not different for the two roles. Both annotators and reviewers earn Sahara Points based on the task’s description and the quality of their contributions. The system ensures fairness by rewarding users equally for their efforts, regardless of their assigned role.

## Rules&#x20;

### How can I improve the quality of my data and minimize bans?

To improve data quality and avoid bans, focus on accuracy rather than speed, ensuring your work meets or exceeds the task’s quality standards. Carefully follow the provided guidelines, avoid any form of cheating, and double-check your submissions for errors before completing the task. Delivering consistent, thoughtful, and genuine work is essential to maintaining a strong standing on the platform.

### Can I submit multiple datapoints for the same task?

Yes, you can submit multiple datapoints for the same task as long as you stay within the daily submission limits and maintain the required quality standards for each submission.

### If I fail the pre-task exam, can I try again?

No, you cannot retake the pre-task exam. Each user has only one attempt to pass the exam for a task. If you fail, you will no longer have access to that task.

### When will points be distributed?

Points will be distributed daily at 12:00AM (UTC+0)

### When will new tasks be released?

New tasks will be updated every three days at 10:00 PM PST.

### Is crafting jailbreaking prompts legal?

Crafting jailbreaking prompts on our platform is legal as we are doing this for ethical, educational, or research purposes. We support responsible exploration and testing of AI systems to improve their safety, robustness, and understanding. By participating in this effort, you are contributing to the advancement of AI safety and ethical research.

### Why am I suspended in the middle of doing the task?

You were suspended because your current accuracy or maximum possible accuracy has fallen below the required threshold. This means it’s no longer possible for you to meet the task’s quality standards.

The system stops you early to prevent poor-quality annotations and ensure efficient task management. This helps maintain high data quality for everyone.

### Why don’t I have access to certain tasks?

Some premium tasks are exclusive to Demigod-tier users who hold the specific NFT that validates their status. If you don’t have access, it means you haven’t yet achieved the Demigod tier or obtained the required NFT.

To unlock access to these tasks, rank up this season to reach the Demigod tier and earn the necessary NFT. Once you have it, you’ll gain access to those premium tasks in the next season.

\ <br>


# Glossary

#### [Accuracy](/user-guide-data-services-platform/data-services-page/annotator-guidelines)

For annotators, it represents the percentage of your annotations that have been approved. For reviewers, it reflects the percentage of your decisions that align with the majority of reviewers for the same annotation. For example, if your accuracy is 50%, it means 50% of your decisions match the majority consensus among reviewers.

#### [**Annotator**](/user-guide-data-services-platform/data-services-page/task-overview-and-pre-exam)

Annotators play a crucial role in making raw data usable for AI training by labeling and organizing information. Their tasks include tagging images, aligning multi-modal content, and categorizing text. Accurate annotations are essential for ensuring that AI models interpret data correctly, as poor labeling can lead to unreliable or biased results.

#### [**Dashboard**](/user-guide-data-services-platform/platform-navigation/dashboard)

Displayed as the homepage, it provides information about your total [Sahara](https://saharaai.com/) Points, a record of the points’ origin, your rank on the leaderboard, rewards, and more.

#### [**Data Labeling**](/user-guide-data-services-platform/data-services-page/task-overview-and-pre-exam)

The process of assigning labels to raw data in order to provide context for machine learning.

#### [**Data Services**](/user-guide-data-services-platform/data-services-page)

This is a hub where you can find, apply for, and complete tasks in exchange for Sahara Points.

#### [**Datapoint**](/user-guide-data-services-platform/data-services-page/task-list)

A contribution to a data labeling task on the Data Services Platform. Every annotation or review is a datapoint used to build out a high-quality dataset. Datapoints that pass quality benchmarks earn Sahara Points as a reward.

#### [**End-of-Season Rewards**](/user-guide-data-services-platform/sahara-rewards/task-specific-sahara-points-sp)

At the end of each season, rewards are distributed according to rank to encourage high performance. See  End-of-Season Reward  for more information.

#### [**EXP**](/user-guide-data-services-platform/sahara-rewards/tracking-your-progress)

Experience Points (EXP) can be earned by completing achievements such as daily check-ins, submitting validated data points for tasks daily, and reaching specific milestones on the platform. Accumulating EXP is crucial for climbing the leaderboard, which unlocks better rewards, higher user tiers, and exclusive opportunities in future seasons.

#### [Faucet](/user-guide-data-services-platform/sahara-rewards/achievements)

The faucet grants free testnet tokens (SAH) to users for sake of claiming EXP in the platform.

#### [**Knowledge Contributors**](/user-guide-data-services-platform/data-services-page/task-overview-and-pre-exam)

This term refers to participants who apply for tasks in the Sahara Data Services Platform to annotate or review data for use in AI models.

#### [**Rank**](/user-guide-data-services-platform/sahara-rewards/user-tiers)

The rank of an individual is determined by the total number of EXP accumulated. Higher ranks correspond to higher bonus rewards at the end of each season. See  Points and Ranking  for more information.

#### [**Reviewer**](/user-guide-data-services-platform/data-services-page/task-overview-and-pre-exam)

Reviewers validate and refine the work of annotators to uphold the platform’s high standards. They ensure every dataset meets stringent quality criteria. Quality control is critical to building reliable datasets that developers can trust, making reviewers an essential part of the process.

#### [**Soul-Bound Tokens (SBTs)**](/user-guide-data-services-platform/sahara-rewards/achievements)

SBTs are non-transferable digital tokens tied to an individual’s identity or achievements within a blockchain ecosystem. Unlike traditional tokens, SBTs cannot be traded or transferred, ensuring their authenticity as a unique representation of the holder’s reputation, credentials, or contributions. Within our Data Services Platform, SBTs play a critical role by validating the credibility of data contributors and rewarding meaningful participation. This ensures data integrity and provenance while fostering a transparent, collaborative environment where contributors are recognized for their value without compromising privacy.

#### [**Suspension**](/user-guide-data-services-platform/data-services-page/task-page)

Suspension refers to a temporary or permanent ban from a task due to falling below accuracy benchmarks or a ban from the platform for consistently low accuracy scores. Extremely low performance in data tasks, such as failing to meet the minimum quality standards repeatedly, will trigger suspension.

#### [**Tasks**](/user-guide-data-services-platform/data-services-page)

Tasks are data labeling projects that earn SAHARA and/or partner rewards. They can be found in Data Services and fall under various interest and expertise categories.<br>


# Troubleshooting

### MetaMask Network Switch and Data Clear Guide

For all users encountering error messages, you may need to switch networks and clear your previous wallet extension and browser data. The following uses MetaMask and Google Chrome as examples:

#### Switch Network

1. Open the MetaMask extension in your browser.
2. Click on “Select a network” in the top left corner.
3. Switch to a different network (not SaharaAI Testnet).
4. Click on “Select a network” in the top left corner again, then locate and delete “SaharaAI Testnet” from the list.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdwaAp8cWLyosUQ3u9fr4wITp6RTsWdoMSoLQ9HAhmMLtyzHiVTs--QHB4xDRZk8pnqHOBi5DlSuDyyI3XuYWjmadkxaPS7QCKH-yvIacgS27OIeZ1YX0uuEVNe32m7HKJw0KER_w?key=bshq2VV6aiY8tYXFAm5BPpgP" alt=""><figcaption></figcaption></figure>

#### Clear Nonce Data

1. In the MetaMask window, click on “Settings” in the top right corner.
2. Select “Advanced”.
3. Click “Clear activity tab data” and confirm.

<figure><img src="/files/FBIRWgk7nFCtmn1jF9Jl" alt="" width="344"><figcaption></figcaption></figure>

#### Access the Platform and Log In

Revisit the [Sahara](https://saharaai.com/) platform and login. You should now be able to engage with the platform as expected.

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

### Clean Cache and Cookies

1. On your computer, open Chrome.
2. At the top right, click More More and then Delete browsing data.
3. Choose a time range, like Last hour or All time.
4. Select the types of information you want to remove.
5. Click Delete data

### Coinbase Network Switch

The process for your Coinbase wallet is similar...

#### Switch Network

1. Open the Coinbase Wallet extension in your browser.
2. Click on “Setting” in the bottom right corner.
3. Switch to a different network (not SaharaAI Testnet).
4. Click on “Custom” in the top right corner again, then locate and delete “SaharaAI Testnet” from the list.
5. Revisit the Sahara platform and login. You should now be able to engage with the platform as expected.

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

### How to Create a Web3 Wallet (MetaMask)

Follow the steps carefully to create a secure Web3 wallet and connect it to platforms using MetaMask and WalletConnect.<br>

**How to Set Up a MetaMask Wallet (Browser Extension)**

MetaMask is a popular Web3 wallet that allows you to interact with decentralized applications (dApps) and manage cryptocurrencies. Follow this step-by-step guide to set up your MetaMask wallet and connect it to Sahara.

**Step 1: Install MetaMask**

1. Download and install the official MetaMask extension for your preferred browser, such as Google Chrome or Firefox. Link here: <https://metamask.io/download/>
2. Once installed, open MetaMask and click the “Get Started” button to begin setting up your Ethereum wallet.

**Step 2: Create a New Wallet**

1. Click the **“Create a Wallet”** button on the next screen.
2. Choose a strong password and confirm it to create your account. This password will be used to access your wallet on the current device.
3. MetaMask will generate a 12-word Secret Recovery Phrase.

* Write down all the words carefully in the exact order shown on your screen.&#x20;
* **Important**: This phrase is essential for restoring your wallet if you lose access to your device.
* Store the recovery phrase in a safe and private location. Never share it with anyone, as it provides full access to your wallet funds.

4. Click “Next” and confirm your backup by selecting the words in the correct order.

**Step 3: Connect MetaMask to Sahara**

* On the Sahara Data Service Platform, choose MetaMask from the sign-in options.
* Confirm the connection request in your MetaMask extension.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXejR57gIJ9JfwyJgmv7LJ-23xEGPbMdjMLZNgdTQo4jCC5h7XoKeXON0Kuoz42G9duEr8caVnhY5a9uSwBltq2AvDhRUr3dqLaFyosaE8Mfxd5yhiOUNepB4kb8snzxK2TxXe13hw?key=TO5LJUCnE-bsD8vIW1oMhzlm" alt="" width="375"><figcaption></figcaption></figure>

### **How to Use WalletConnect**

WalletConnect is a protocol that allows you to securely connect various wallets (including MetaMask) to decentralized applications. Follow this guide to set up and connect your mobile wallet using WalletConnect.

&#x20;**Step 1: Download and Install a Web3 Wallet (Mobile App)**

To use WalletConnect, you need a crypto wallet first. Here’s how to create one using MetaMask as an example:

1. Go to the App Store (iOS) or Google Play Store (Android).
2. Search for MetaMask and download the official app.
3. Open the app and tap “Get Started.”
4. Choose “Create a New Wallet.”
5. Set a Password: Create a secure password for accessing your wallet on your mobile device.
6. Save Your Secret Recovery Phrase (12 Words):
7. Write down the 12-word Secret Recovery Phrase shown on the screen.

**Important:** Store your recovery phrase offline in a secure location. **DO NOT** share this phrase with anyone, as it can be used to access your funds. Once you've done so, confirm the recovery phrase in the correct order to finish the wallet setup.

**Step 2: How to Connect Wallet Using WalletConnect (Mobile Method)**

Now that you have a wallet, you can connect it to a platform using WalletConnect.

Using Your Phone to Connect:

1. Open the Web3 platform you want to connect to on your computer or mobile browser.
2. Find the “Connect Wallet” button (usually on the top right corner).
3. Select WalletConnect from the list of wallet options.
4. A QR Code will appear on the screen.

Using MetaMask Mobile App to Scan the QR Code:

1. Open your MetaMask app.
2. Tap the Menu Icon (three lines) in the top-left corner.
3. Select WalletConnect.
4. Tap “New Connection” and scan the QR code shown on the Web3 platform.
5. Confirm the connection request inside the MetaMask app.

You’re now connected! Your wallet can interact with the platform for transactions.

**Step 3: Use WalletConnect to sign in**

1. Choose WalletConnect from the sign-in options.
2. A QR code will appear on the screen.
3. Scan the QR code.
4. Your wallet will ask for permission to connect. Confirm the connection.

\
You have successfully created and connected a Web3 wallet!


# Terms of Use

### Restricted Countries for Platform Access

To comply with international sanctions, regulatory requirements, and ensure a secure operational environment, Sahara AI restricts logins and access from the following countries. Users attempting to log in from these locations will be blocked.

#### North America

* United States of America
* Canada

#### Asia

* Democratic People's Republic of Korea (North Korea)
* People's Republic of China

#### Africa

* Sudan
* South Sudan
* Côte d'Ivoire
* Democratic Republic of the Congo
* Libya
* Mali
* Zimbabwe

#### Europe

* Belarus
* Crimea and Sevastopol

#### Middle East

* Iran
* Syrian Arab Republic
* Yemen

#### Caribbean and Other Regions

* Cuba
* Bahamas
* Trinidad and Tobago
* Nicaragua
* Venezuela

#### Southeast Asia

* Cambodia
* Myanmar (Burma)
* Sri Lanka
* Indonesia
* Somalia


# Welcome to the AI Developer Platform

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

The [Sahara AI](https://saharaai.com/) Developer Platform empowers anyone—technical or not—to build, customize, and deploy AI agents in minutes. Designed for speed, accessibility, and modularity, the platform combines no-code tools with powerful backend infrastructure to streamline the AI development process from end to end.

Whether you’re a solo builder experimenting with agents, a data contributor registering high-value datasets, or a team deploying production-ready tools, the Developer Platform gives you everything you need to bring AI to life—on-chain and fully composable.

#### What You Can Do:

* Build and customize AI agents with a simple interface
* Register and manage datasets and models
* Choose and assign smart contract-enforced licenses
* Collaborate with other contributors and co-owners
* Monitor performance and usage
* Prepare assets for future monetization on the AI Marketplace

This guide walks you through how to use the platform, register assets, apply licenses, and prepare for on-chain deployment and future monetization. Whether you’re starting from scratch or bringing in existing resources, Sahara AI makes agent development faster, more open, and fully yours.


# Agent Builder

This guide will walk you through how to get started with the Sahara Agent Builder and the AI Marketplace, now available in open beta for all users.

### Overview

[Sahara AI](https://saharaai.com/) is unlocking a new way to build, own, and deploy AI agents-all without writing code.

Whether you’re technical or not, you can:

* Build custom AI agents in minutes
* Use Retrieval-Augmented Generation (RAG) with your own data
* Access curated open-source models and datasets from the AI Marketplace
* Register agents on-chain and prepare for monetization

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

***

### Getting Started with Agent Builder

The Agent Builder allows you to easily create functional AI agents through a no-code interface. You can build, customize, and deploy agents directly from your browser, without any infrastructure setup.

#### Core Features

* No-code agent creation
* Prompt-based agents with custom behaviors
* Retrieval-Augmented Generation (RAG) using your own documents
* Fully managed serverless deployment
* Real-time monitoring and usage tracking

⚠️ Note: During open beta, free usage is rate-limited. You can apply for expanded access via the in-app popup or this whitelist form.

***

### Build Your First Agent - Quick Start

Follow these simple steps to create and deploy your first agent:

#### Step 1: Create a New Agent

* Navigate to the Agent Builder.
* Name your agent.
* Define your agent’s system prompt — describe its task, tone, and behavior.&#x20;

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

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

#### Step 2: Select a Model

* Use a model you own or import a model directly from the AI Marketplace.

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

#### Step 3: Select a Dataset (Optional)

* Use your own uploaded datasets or import a dataset from the AI Marketplace. Any uploaded or purchased datasets are securely stored in your assets folder.

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

#### Step 4: Register Your Agent

* Choose to register your agent on-chain via the Sahara Blockchain.
* Registration mints an OwnershipNFT, establishing on-chain provenance.

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

#### Step 5: Assign a Co-Owner (Optional)

* Share ownership of the agent with collaborators.

<figure><img src="/files/41lxKiZrm7NJ1WDtSQjX" alt=""><figcaption></figcaption></figure>

#### Step 6: Set a License Type

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

When registering your agent, select a license that defines usage rights:

| License Type         | Description                                                            |
| -------------------- | ---------------------------------------------------------------------- |
| Open Use             | Free, unrestricted reuse with no royalties                             |
| Non-Commercial Remix | Free remixing allowed for non-commercial use                           |
| Commercial Use       | Commercial use allowed, remixing prohibited                            |
| Commercial Remix     | Full commercial use & remixing allowed, with automated royalty routing |

⚠️ Licensing is required to list your agents for monetization when the Marketplace opens for commercial use.

#### Step 7: Complete the Registration of your Agent

⚠️If you require additional $SAHARA to complete the transaction click "**Top Up"** to access the testnet faucet.

<figure><img src="/files/1KfXbDLBqx6wyctTPb29" alt=""><figcaption></figcaption></figure>

#### Step 7: Deploy Your Agent

* Click on your newly registered agent&#x20;
* Select Serverless provider.
* Your agent will be live with an API endpoint in seconds.

<figure><img src="/files/0rCTWCb8dKHUL4BcdgSR" alt=""><figcaption></figcaption></figure>

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

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

***

## What’s Coming Next

The open beta is just Phase 1. Future roadmap items include:

* Agent monetization and listings
* Dedicated GPU deployments for advanced compute
* Advanced tool-chaining and multi-step agent logic
* Full on-chain creator profiles for discoverability


# Questline & Referrals

### Questline

Question offers a way for users to earn rewards simply by exploring and engaging with the developer platform. By completing tasks such as uploading datasets, editing metadata and referring friends, users will unlock non-transferable NFT's called achievements. The soul-bound tokens&#x20;

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

### Referrals

Referrals are another easy way to earn rewards simply by sharing your experience using the developer platform to create agents with your unique referral code. Any and all referrals from your link will be recorded in the "My Referral Activities" dashboard.&#x20;

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

### How to Refer Friends with your Unique Code

There are two ways to refer friends using your auto-generated unique referral link

1. Copy the link and share directly with peers or on social channels
2. Share a pre-populated tweet or telegram post by clicking on the icon in the platform

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


# Agent Builder FAQs

## Agent Builder FAQs

### General Overview

What is the Sahara Agent Builder?

The Agent Builder is a no-code tool that lets anyone create, customize, and deploy AI agents using Sahara’s AI development platform. It’s built for fast iteration—no engineering required.

#### Do I need coding experience to use the Agent Builder?

No. The Agent Builder is fully no-code. If you’re more technical, you can extend capabilities through prompt engineering or by integrating registered models and datasets.

#### What is an AI agent in this context?

An agent is an interactive AI workflow that performs a specific task using a combination of prompts, models, tools, and optional datasets. You can think of it as a mini app powered by AI.

***

### Using the Agent Builder

#### How do I build an agent?

**Use the step-by-step interface to:**

1. Choose a base model
2. Add prompts and tools
3. Optionally connect datasets
4. Test and deploy the agent

#### Can I test my agent before deploying it?

Yes. The Agent Builder includes a built-in preview environment so you can interact with your agent before publishing it.

#### Can I use custom models or datasets?

Yes. You can register your own models and datasets on the [Sahara AI](https://saharaai.com/) platform, and then use them inside your agents.

***

### Ownership & Licensing

#### What happens when I publish an agent?

Once you publish an agent, it’s registered on-chain with a license that defines how others can use or remix it.

#### What licensing options are available?

**You can choose one of the following licenses:**

* Open Use – Free, unrestricted use
* Non-Commercial Remix – Remixing allowed, but not for commercial purposes
* Commercial Use – Use permitted for profit, remixing prohibited
* Commercial Remix – Full use and remixing rights with automatic royalty routing

#### Can I co-own an agent with others?

Yes. Sahara allows for multi-contributor attribution. When registering an agent, you can add co-owners who will share licensing rights and future royalties.

***

### Monetization (Coming Soon)

#### How will monetization work?

Once monetization is live, users can pay to use or license agents. Revenue will be automatically distributed via smart contracts based on licensing terms and attribution.

#### Will I earn royalties if someone uses or remixes my agent?

Yes, if you’ve selected a commercial license with remixing enabled, royalties will be routed to all upstream contributors based on the asset graph.

***

### Troubleshooting & Support

#### My agent isn’t working as expected—what should I do?

First, review your prompt logic and dataset connections. If the issue persists, check for any platform-wide issues in the support forum or reach out via the help desk.

#### Is there a limit to how many agents I can create?

There are currently rate limits during the open bet. These limits are temporary and will be adjusted as the platform scales. You can apply for a higher limit within the platform itself.


# Dataset Registry & Tokenization

Welcome to the Dataset Registration Guide — the foundation of [Sahara AI](https://saharaai.com/)’s SIWA Testnet launch!

This guide will walk you through how to upload a dataset, register it on-chain, and mint an ownership NFT (non-transferable) that establishes provenance and control over your AI asset. By participating in this first phase, you’re helping shape a new standard for AI asset ownership on the Sahara Network, where datasets become verifiable, tradeable, and sovereign.

Let’s get started!

### Step 1: Access the [Developer Portal](https://portal.saharalabs.ai/main/explore) and Click Register AI Assets

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

### Step 2: Login with your wallet and create your profile&#x20;

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

### Step 3. Input your dataset information and create a storage folder for your asset

<figure><img src="/files/7Q23g24JCCZETnzKHtjB" alt=""><figcaption></figcaption></figure>

### Step 4: Register your dataset on SIWA Testnet (select "Top Up" if you don't have sufficient funds for gas fees).&#x20;

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

### Step 5: Approve the transaction in the wallet pop-up and wait for the minting process to be complete

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

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

### Step 6: Once the minting is complete, review the detailed fields associated with your asset&#x20;

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

### Step 7: Visit your vault to view your datasets

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


# FAQs

### Dataset Upload & Registration

#### 1. What types of files can I upload?

You can upload text-based files, including prompts, Q\&A pairs, transcripts, and spreadsheet-style data containing numbers and text. They must be csv, json or txt.

#### 2. Is there a size limit for my dataset upload?

Yes, each dataset upload must be under 50 MB. Larger files should be split into smaller uploads. Currently, users are limited to uploading 3-datasets per week.&#x20;

#### 3. How do I prove ownership of my dataset?

Ownership is proven by registering your dataset on-chain during the upload process. This creates a verifiable record linking you directly to your dataset.

#### 4. Can I update or delete my dataset after registering?

Registered datasets can be deleted in the "My Assets" page.

#### 5. Will my dataset be publicly accessible once uploaded?

No, datasets remain private unless explicitly shared or listed publicly by the dataset owner.

#### 6. How long does dataset registration take?

Registration typically takes a few minutes, but may vary slightly depending on blockchain network conditions.

#### 7. Can I transfer my NFT?

No - your ownership NFT is non-transferable.

#### 8. Why isn't the login working?

If you're having issues logging in with your wallet, ensure you are on the Sahara Testnet network.

***


# Glossary

Below is a glossary of key terms and concepts used throughout the Sahara AI User Guide:

#### [API (Application Programming Interface)](/developer-docs-ai-developer-portal/api-documentation)

A set of protocols and tools that enable developers to interact programmatically with Sahara AI. The API is used for creating, deploying, and managing AI pipelines as well as controlling compute resources.

[**Compute Hub**](/developer-docs-ai-developer-portal/compute-hub)

A core component of the Sahara AI Product Suite responsible for managing compute instances and endpoints. It handles the provisioning of resources needed to run AI workloads and deploy models.

[**Compute Instance**](/developer-docs-ai-developer-portal/compute-hub)

A virtual server or container managed within the Compute Hub that runs AI workloads and hosts deployed AI model endpoints.

[**Compute Provider**](/developer-docs-ai-developer-portal/compute-hub)

Third-party services (such as Lepton, Predibase, Sagemaker, Bedrock, OpenAI) that supply the computational power required to execute AI workloads on the Sahara AI platform.

[**Conversation Starter**](/developer-docs-ai-developer-portal/compute-hub)

An optional configuration element in a pipeline that initiates conversation flows, particularly useful in prompt-based pipelines for engaging AI interactions.

[**Data Hub**](/developer-docs-ai-developer-portal/data-hub)

A marketplace within the Sahara AI platform where users can discover, purchase, and sell datasets. It serves as a centralized resource for accessing valuable data.

[**Data Vault**](/developer-docs-ai-developer-portal/data-vault)

A secure, decentralized storage solution for datasets. Data Vaults ensure data privacy, maintain provenance, and integrate seamlessly with AI pipelines.

[**Dataset**](/developer-docs-ai-developer-portal/data-hub)

A collection of structured data (in formats such as CSV, JSON, or Parquet) used for training or validating AI models. Datasets can be sourced from the Data Hub or uploaded directly by users.

[**Developer Portal**](/developer-docs-ai-developer-portal/developer-portal)

The gateway to the Sahara AI platform that integrates all services into a unified interface. It provides developers with the tools needed to build, manage, and deploy AI assets.

[**Model Hub**](/developer-docs-ai-developer-portal/model-hub)

A centralized interface for browsing, creating, and deploying AI pipelines. The Model Hub supports both Retrieval-Augmented Generation (RAG) and prompt-based pipelines, making it easier to manage AI models.

[**Pipeline**](/developer-docs-ai-developer-portal/model-hub)

A sequence of interconnected processes designed to automate the flow of data and model interactions. Pipelines in the Model Hub guide users through the steps of configuring and deploying AI workflows.

[**Prompt-Based Pipeline**](/developer-docs-ai-developer-portal/model-hub)

A type of AI pipeline that uses prompt engineering to handle conversational or structured tasks. It relies on input prompts to drive the behavior and responses of the AI model.

[**Retrieval-Augmented Generation (RAG)**](/developer-docs-ai-developer-portal/model-hub)

A pipeline method that integrates data retrieval from secure Data Vaults with AI generation processes. This approach enhances the relevance and accuracy of the AI-generated responses.

[**Usage Metrics**](/developer-docs-ai-developer-portal/model-hub)

Statistical data that track performance and consumption of platform resources, including API calls, token usage, and overall system performance.&#x20;

[**Personal Data Upload**](/developer-docs-ai-developer-portal/data-vault)

A feature that allows users to manually upload their own datasets into a vault. Supported file formats include CSV, JSON, and Parquet, enabling the integration of custom data into AI pipelines.

[**Workflow**](/developer-docs-ai-developer-portal/workflow-steps)

A structured sequence of processes within the Sahara AI platform that guides users from initial data upload through to pipeline creation, deployment, and monitoring.

This glossary provides quick definitions to help users navigate the Sahara AI Product Suite and understand the terminology used throughout the user guide.

<br>


# Troubleshooting

### MetaMask Network Switch

For all users encountering error messages, you may need to switch networks.&#x20;

#### Switch Network

1. Open the MetaMask extension in your browser.
2. Click on “Select a network” in the top left corner.
3. Switch to Sahara Testnet

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


# API Documentation

### Overview

This document provides a comprehensive guide to using the [Sahara](https://saharaai.com/) API. It walks you through discovering available models and compute providers, querying model metadata, and making inference requests using both raw HTTP and OpenAI-compatible Python clients.\
\
The API is especially useful for developers integrating multiple model providers into their workflow while maintaining a unified interface.\
\
You will learn how to:

* Query all available models and compute providers
* Filter models or providers using specific criteria
* Access model usage details
* Send inference requests through Langchain, OpenAI SDK, or direct HTTP
* Implement multi-agent logic with routing

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

### Preparation

### API Setup

To access the Sahara Model Hub API, you need a valid API key. This key is required to authenticate every API request.

#### How to Get Your API Key

1\. Go to the Developer Portal &#x20;

&#x20;  Open: [app.saharaai.com/developer/api](http://app.saharaai.com/developer/api)

2\. Log In and Access API Keys &#x20;

&#x20;  Navigate to the Main Page (top-left) → select "API Key" in the sidebar menu on left side.

3\. Create a New Key &#x20;

&#x20;  Click "Create API Key", assign it a name like "dev-client", and generate it.

4\. Copy and Store Securely &#x20;

&#x20;You can view your key anytime by clicking on the "eye" icon in the sidebar. Save it securely in an environment variable, config file, or secret manager.

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

Note: Never expose your API key in public code or repositories. Treat it as a secret credential.

Once you have your API key, configure it in your script. This will be required in all requests sent to the Sahara API.

Configure http header with you API\_KEY:

```
  API_KEY = "your-api-key"
    HEADERS = {
        "Accept": "application/json",
        "x-api-key": API_KEY,
    }
```

Replace "your-api-key" with the key you obtained from the Developer Portal.

### Discover Available Models & Providers

\
The Sahara API allows you to dynamically explore available models and compute providers.

#### Get All Models

This command fetches all registered models across providers:

```
curl -s 'https://app.saharaai.com/developer/api/compute/models'   -H 
'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

#### Sample Response

```
[
  "llama-3-8b",
  "gpt-4o",
  "deepseek-ai/DeepSeek-V3",
  "deepseek-ai/DeepSeek-R1",
  "llama3-3-70b",
  "Qwen/Qwen2.5-72B-Instruct-Turbo",
  "meta-llama/Llama-3.3-70B-Instruct-Turbo",
  "Qwen/Qwen2.5-7B-Instruct-Turbo",
  "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
  "llama3-1-8b",
  "deepseek-ai/DeepSeek-V3-0324"
]
```

### Get All Providers

This API lists all compute providers (e.g., OpenAI, Lepton, Together):

```
curl -s 'https://app.saharaai.com/developer/api/compute/providers'   -H 
'Accept: application/json'   -H 
'x-api-key: your-api-key'
```

#### Sample Response

```
["lepton","predibase","sagemaker","bedrock","openai","together"]
```

### Get Models by Provider

Query models served by a specific provider

{% code overflow="wrap" %}

```
curl -s 'https://app.saharaai.com/developer/api/compute/models?provider=predibase'   -H 'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

{% endcode %}

#### Sample Reponse

```
[
  "llama-3-8b"
]
```

### Get Providers by Model

Find which providers serve a specific model, for example, when we want to find the provider serving deepseek-ai/DeepSeek-V3

{% code overflow="wrap" %}

```
curl -s 'https://app.saharaai.com/developer/api/compute/providers?model=deepseek-ai/DeepSeek-V3'   -H 'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

{% endcode %}

#### Output

```
[
  "together"
]
```

### Get Model Details

Fetch metadata and detailed usage requirements for a specific model-provider pair:

{% code overflow="wrap" %}

```
curl -s 'https://app.saharaai.com/developer/api/compute/modelDetail?model=deepseek-ai/DeepSeek-V3&provider=together'   -H 'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

{% endcode %}

#### Sample Response

```
{
  "id": "1beec936-672e-4e63-9ef9-af721d0ed3e2",
  "name": "deepseek-ai/DeepSeek-V3",
  "description": "together AI deepseek-ai/DeepSeek-V3",
  "is_public": null,
  "license": null,
  "model_size": 0,
  "tags": null,
  "tensor_type": null
}
```

### Model Inference by Raw HTTP Request

```python
import os
import requests

SAHARA_DEVPORTAL_API_KEY = 'your-api-key'
SAHARA_API_BASE_URL = "https://app.saharaai.com/developer/api"

model_name = "gpt-4o"
model_provider = "openai"

url = f"{SAHARA_API_BASE_URL}{CHAT_COMPLETION_PATH="/compute/chat/completions"}
headers = {
   "Content-Type": "application/json",
   "Authorization": f"Bearer {SAHARA_DEVPORTAL_API_KEY}",
   "OpenAI-Organization": model_provider
}
data = {
   "model": model_name,
   "messages": [
       {"role": "system", "content": "You are a helpful assistant."},
       {"role": "user", "content": "Hello!"}
   ]
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
```

#### Sample Response

{% code overflow="wrap" %}

```
{'id': 'chatcmpl-BHOQRlHqSrfSMi3wFtOYzxVOZWufb', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Hello! How can I assist you today?', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None, 'annotations': []}}], 'created': 1743485167, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': 'default', 'system_fingerprint': 'fp_898ac29719', 'usage': {'completion_tokens': 10, 'prompt_tokens': 19, 'total_tokens': 29, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}
```

{% endcode %}

### Model Inference by OpenAI SDK

If you prefer to use OpenAI's SDK, the Sahara endpoint fully supports OpenAI-compatible APIs.

#### Non-Streaming Response

```python
from openai import OpenAI
client = OpenAI(
   base_url=SAHARA_API_BASE_URL,
   api_key=SAHARA_DEVPORTAL_API_KEY,
   organization="openai"
)
completion = client.chat.completions.create(
 model="gpt-4o",
 messages=[
   {"role": "system", "content": "You are a helpful assistant. You are a helpful assistant. You are a helpful assistant. You are a helpful assistant."},
   {"role": "user", "content": "Hello! Who are you man? Are you ok? Hey hey hey"}
 ]
)
print(completion.choices[0].message)
```

#### Sample Output

{% code overflow="wrap" %}

```
ChatCompletionMessage(content="Hello! I'm an AI assistant here to help you with any questions or information you need. How can I assist you today?", refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None)
```

{% endcode %}

#### Streaming Response

```python
async def generate(model_name, model_provider):
   print(f"Testing Streaming Output of {model_name} on {model_provider}")
   chat = ChatOpenAI(
       model=model_name,
       api_key=SAHARA_DEVPORTAL_API_KEY,
       openai_api_base=SAHARA_API_BASE_URL,
       organization=model_provider,
       streaming=True,
       extra_body={
           "compute_provider": "lepton"
       }
   )

   messages = [
       HumanMessage(content="Hello! How are you are you are you? Hey hey hey!")
   ]

   try:
       full_content = ""
       async for chunk in chat.astream(messages):
           if chunk.content:
               full_content += chunk.content
               print(full_content)

       print(full_content)
       return

   except Exception as e:
       print(f"Streaming error: {e}")
       error_data = {"type": "error", "message": str(e)}
       print(f"data: {json.dumps(error_data)}\n\n")

async def main():
   for combination in model_provider_combinations[:1]:
       await generate(combination["model_name"], combination["model_provider"])

if __name__ == '__main__':
   asyncio.run(main())
```

#### Sample Response

```
Testing Streaming Output of gpt-4o on openai
Hello
Hello!
Hello! I'm
Hello! I'm here
Hello! I'm here and
Hello! I'm here and ready
Hello! I'm here and ready to
Hello! I'm here and ready to help
Hello! I'm here and ready to help.
Hello! I'm here and ready to help. What
Hello! I'm here and ready to help. What can
Hello! I'm here and ready to help. What can I
Hello! I'm here and ready to help. What can I do
Hello! I'm here and ready to help. What can I do for
Hello! I'm here and ready to help. What can I do for you
Hello! I'm here and ready to help. What can I do for you today
Hello! I'm here and ready to help. What can I do for you today?
Hello! I'm here and ready to help. What can I do for you today?
```

### Model Inference Using Langchain

Prerequisites

Ensure the following tools and packages are installed before continuing

{% code overflow="wrap" %}

```
pip install langchain_openai
```

{% endcode %}

langchain\_openai is a Python library that provides integration between LangChain and OpenAI’s API.&#x20;

You can interact with sahara models using the \`langchain\` interface. This is useful for testing streaming outputs and experimenting with conversational flows.\
\
Below is an example using a working model to demonstrate both success and failure:

```python
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
import asyncio
import json

model_name = "gpt-4o"
model_provider = "openai"

chat = ChatOpenAI(
   model=model_name,
   api_key=SAHARA_DEVPORTAL_API_KEY,
   openai_api_base=SAHARA_API_BASE_URL,
   organization=model_provider,
   streaming=False,
)

messages = [
   HumanMessage(content="Hello! How are you?")
]

def generate():
   try:
       res = chat.invoke(messages)
       print(res)

   except Exception as e:
       print(f"Streaming error: {e}")
       error_data = {"type": "error", "message": str(e)}
       print(f"data: {json.dumps(error_data)}\n\n")

if __name__ == '__main__':
   generate()

```

#### Sample Response

{% code overflow="wrap" %}

```
content="Hello! I'm just a program, so I don't have feelings, but I'm here and ready to help you. How can I assist you today?" additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 30, 'prompt_tokens': 13, 'total_tokens': 43, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb9dce56a8', 'finish_reason': 'stop', 'logprobs': None} id='run-427fd56e-853e-4cb4-9c29-8f48cccab9d6-0' usage_metadata={'input_tokens': 13, 'output_tokens': 30, 'total_tokens': 43, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}

```

{% endcode %}

### Multi-Agent Integration (OpenAI Agents SDK)

The Sahara API supports OpenAI's 'agents-python' package. This example sets up three agents:&#x20;

1. A Spanish-speaking agent
2. An English-speaking agent
3. A triage agent that routes input based on langauge

#### Prerequisites

Ensure the following tools and packages are installed before continuing

{% code overflow="wrap" %}

```
pip install nest_asyncio
pip install "openai-agents @ git+https://github.com/openai/openai-agents-python.git"
```

{% endcode %}

* openai-agents is a Python SDK that provides an Agent Framework for building intelligent agents.
* nest\_asyncio Allows you to run asynchronous code

```python
import os
from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel, RunConfig
import asyncio
import nest_asyncio
nest_asyncio.apply()

SAHARA_DEVPORTAL_API_KEY = 'your-api-key'
MODEL_BASE_URL = "https://app.saharaai.com/developer/api"

client_openai = AsyncOpenAI(
   api_key=SAHARA_DEVPORTAL_API_KEY,
   base_url=SAHARA_API_BASE_URL,
   organization="openai"
)

client_together = AsyncOpenAI(
   api_key=SAHARA_DEVPORTAL_API_KEY,
   base_url=SAHARA_API_BASE_URL,
   organization="together"
)

spanish_agent = Agent(
   name="Spanish agent",
   instructions="You only speak Spanish. Your name is James",
   model=OpenAIChatCompletionsModel(
       model="deepseek-ai/DeepSeek-V3",
       openai_client=client_together,
   )
)

english_agent = Agent(
   name="English agent",
   instructions="You only speak English. Your name is Jesse",
   model=OpenAIChatCompletionsModel(
       model="deepseek-ai/DeepSeek-V3",
       openai_client=client_together
   ),
)

triage_agent = Agent(
   name="Triage agent",
   instructions="Handoff to the appropriate agent based on the language of the request.",
   handoffs=[spanish_agent, english_agent],
   model=OpenAIChatCompletionsModel(
       model="gpt-4o",
       openai_client=client_openai
   ),
)

async def main():
   result = await Runner.run(triage_agent, input="Hola, ¿Cómo te llamas?")
   print(result.final_output)

asyncio.run(main())
```

#### Sample Response

```
¡Hola! Me llamo James. ¿En qué puedo ayudarte hoy?
```

This example demonstrates complex routing logic using OpenAI-compatible models served from Sahara.

### Error Handling and Best Practices

**Error Codes**

* 400 Bad Request: Check request formatting.
* 404 Not Found: Verify pipeline or model IDs.
* 500 Internal Server Error: Retry or contact support.

**Best Practices**

1. Secure Keys:

* Use environment variables to store API keys securely.

2. Monitor Usage:

* Regularly review metrics to optimize performance.

3. Retry Logic:

* Implement retry logic for transient errors (e.g., 500 Internal Server Error).


# Quick Start Guide

This guide helps developers and app builders onboard quickly, focusing on the essential workflows for Alpha and Beta releases. Users can either use the **Graphical User Interface (GUI)** to navigate through the AI Model Pipeline setup or use[ our API.](/developer-docs-ai-developer-portal/api-documentation)

### AI Pipeline Guidelines for Testers

Testers are responsible for designing, building, and deploying AI pipelines that align with the platform’s AI capabilities and dataset requirements. These pipelines must be scalable, production-ready, and optimized for DeFi analytics.&#x20;

**To ensure effectiveness, an AI pipeline should adhere to the following principles:**

#### 1. Focus on DeFi AI Workflows

• Address critical DeFi use cases such as yield rate queries, cross-chain cost estimation, risk assessment, and token pricing.

• Simulate real-world DeFi interactions, including liquidity provision, lending strategies, and governance activity.

#### 2. Integrate Multi-Source Data

• Utilize both on-chain and off-chain data from the Data Marketplace and external APIs.

• Merge diverse DeFi datasets while ensuring data consistency, proper time-stamping, and validation.

#### 3. Meet Production Standards

• Implement robust monitoring, error handling, and traceable data governance mechanisms.

• Support real-time or batch inference to enable efficient DeFi queries.

#### 4. Optimize for Performance & Scalability

• Efficiently process large-scale transactions and real-time queries.

• Enhance performance through optimized API management, caching strategies, and data batching.

#### 5. Ensure Clear Documentation & Reproducibility

• Provide structured deployment guides and configuration options to enable seamless replication.

• Design pipelines to support future modifications and scalability across multi-chain environments.

These guidelines ensure that AI pipelines contribute effectively to DeFi analytics, offering reliable insights while maintaining high performance and adaptability.

### Signing into the Portal

Signing into Sahara AI Studio is easy, here’s how…

***Click the “Sign in” button in the top right corner of the map***

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


# Instructions for Testing

## Onboarding Instructions for Building DeFi Agents

Welcome to the alpha testing program for building DeFi AI pipelines!&#x20;

Your mission is to develop a working DeFi pipeline that delivers functional insights for one of two key areas: **On-Chain Data Analysis** *or* **Market Analysis & Prediction.**&#x20;

### **Use the guidelines below\...**

### 1. Choose Your Use Case

***You must choose one of the following domains for your pipeline:***

**On-Chain Data Analysis**

• Focus on extracting, processing, and summarizing data directly from blockchain networks.

• Potential functionalities include transaction trend analysis, protocol usage stats, and anomaly detection.

**Market Analysis & Prediction**

• Focus on aggregating market data (prices, volumes, social sentiment) and using that data to forecast trends.

• Ensure your pipeline includes clear reasoning behind any predictive analytics or recommendations.

***Note: While your primary focus should be on one domain, you are welcome to include secondary features if they add value to the end user.***

### 2. Data Sources and Integration

**Required Data Source Categories**:

**On-Chain Data**: Use blockchain explorers, subgraphs, or other on-chain APIs.

**Off-Chain Data**: Leverage price aggregators, social media sentiment analysis tools, or other market data sources.

**Guidelines:**

**Reference Material:** Detailed dataset examples and API documentation are provided in your resource bundle. Use these as a starting point, but feel free to integrate additional or alternative sources that meet your project’s objectives.

**Data Reliability**: Verify that the data you retrieve is accurate and up-to-date. Your pipeline should gracefully handle any potential data delays or retrieval failures.

### 3. Output Requirements

**General Expectations:**

**Actionable Insights:** Each pipeline must output clear, concise summaries or predictions that can inform real-world DeFi decisions.

**Clarity in Explanations**: For pipelines that include predictive models, document the logic and reasoning behind your predictions. This could be in the form of inline comments, a separate readme file, or a detailed summary report.

**Format:**

• Ensure that your outputs are easy to read and interpret. Use tables, charts, or bullet points where applicable.

• Consider providing both machine-readable (e.g., JSON, CSV) and human-readable formats.

### 4. Development Objectives

**Accuracy & Reliability:**

**Robust Data Handling**: Implement error-checking and fallback mechanisms to minimize failures or delays.

**Testing**: Validate your pipeline with different data sets and scenarios to ensure consistent performance.

**Scalability:**

**Concurrency**: Design your pipeline to handle high volumes of data and multiple concurrent queries.

**Performance**: Optimize data fetching and processing to support real-time or near-real-time insights.

**Innovation:**

**Beyond the Basics:** Don’t feel restricted to the provided examples. Explore novel approaches that solve real challenges for DeFi users.

**User-Centric Solutions**: Focus on features that improve decision-making for end users in a tangible way.

### 5. Submission and Feedback

**Documentation**: Include a clear README file that outlines your chosen use case, data sources, processing logic, and how to run your pipeline.

**Demonstration**: Provide sample outputs along with instructions on how to test or interact with your pipeline.

**Feedback Loop:** Be prepared to iterate on your design based on tester and developer feedback. Document any issues you encounter and your proposed fixes.

### 6. Additional Tips for Success

**Plan Before You Code:** Outline your design, identify necessary data endpoints, and draft the structure of your pipeline.

**Keep It Modular**: Build your solution in modular components to simplify debugging and future improvements.

**Communicate Clearly**: Use comments and documentation to make your code and logic easy for others to understand.

By following these detailed steps, you will help ensure that your DeFi pipeline is not only innovative and robust but also user-friendly and aligned with our program goals.&#x20;

Thank you for your contributions, and happy testing!

## Data Sources (References for Testers)

The following data sources are examples you can use to develop pipelines. These are references and not mandatory or fixed; feel free to explore additional sources.

#### A. On-Chain & Subgraph Data (Data Retrieval)

**Block Explorers:** Etherscan, BSCScan, Polygonscan.

**Raw Blockchain Interactions**: Token transfers, contract calls, gas fees, approvals (ERC-20, ERC-721, ERC-1155).

**Whale Activity**: Large wallet inflows/outflows.

**Governance Activity**: DAO proposals, voting records.

**Historical Metrics**: Gas fees and transaction latency under varying network conditions.

#### B. DeFi Analytics & Insights (Market & Price Data)

**Price Aggregators:** CoinGecko, CoinMarketCap, Binance API for real-time and historical token prices.

**DeFi Protocol Data**: APR/APY rates for lending, staking, and liquidity pools (e.g., Aave, Compound, Curve).

**Market Sentiment Indicators**: Social media sentiment, funding rates from perpetual swaps.

**Derivatives Data:** Funding rates, open interest, and options pricing for derivative and perpetual markets.

#### C. Multi-Source Data Merging (Large-Scale DeFi Transaction Records)

**Liquidity Pool Metrics**: Reserve balances, TVL (Total Value Locked) metrics (e.g., Uniswap, Balancer, Sushiswap).

**Yield-Farming Data**: Staking rewards and yield variations over different timeframes.

**Flash Loan Data**: Availability, utilization, and protocol-specific lending rates.

#### D. Scalability & Efficiency (Cross-Chain Activity & Bridging Data)

**Bridge-Specific Data**: Transaction history, fees, slippage, and liquidity analytics (e.g., LayerZero, Stargate, Hop Protocol).

**Real-Time Monitoring**: Decentralized bridge reserves and pool imbalances.

### Reference Data Sources

The following platforms provide rich datasets for building DeFi pipelines. These are just examples; you can explore and integrate additional sources as needed:

1. [L2Beat](https://l2beat.com/scaling/summary): Scaling solutions, metrics for Layer 2 protocols.
2. [Artemis](https://app.artemis.xyz/home): Multi-chain analytics, TVL, and user activity metrics.
3. [DeBank](https://debank.com/): Wallet tracking, DeFi portfolio aggregation.
4. [CoinGlass](https://www.coinglass.com/): Market indicators, funding rates, derivatives data.
5. [Santiment](https://santiment.net/): Social sentiment, on-chain activity, and market metrics.
6. [Token Terminal](https://tokenterminal.com/): Protocol financial metrics, revenues, and user data.
7. [Nansen](https://app.nansen.ai/): On-chain analytics, wallet tracking, whale activity.
8. [Messari](https://messari.io/): Crypto reports, research, and market data.
9. [DeFiLlama](https://defillama.com/): TVL metrics, protocol comparisons, multi-chain data.
10. [CryptoQuant](https://cryptoquant.com/): Exchange flows, miner data, market indicators.
11. [Dune Analytics](https://dune.com/): Custom dashboards and on-chain data analysis.

## Basic Passing Criteria

A pipeline will **PASS** if it meets the following requirements:

### 1. Functionality & Execution

**Data Retrieval**: The pipeline can successfully fetch data from on-chain and off-chain sources, such as blockchain explorers, DEX aggregators, and yield protocols.

**Data Processing**: The pipeline processes the retrieved data into actionable insights or outputs.&#x20;

**Examples include:**

* Token trend analysis.
* Yield/APY calculations.
* Price predictions or market sentiment analysis.
* End-to-End Workflow: The pipeline can execute its end-to-end workflow without crashing, including data retrieval, processing, and output generation.

### 2. Data Accuracy & Relevance

**Correct Data Outputs**: The pipeline delivers accurate and logically structured outputs based on the retrieved data.&#x20;

**Examples include:**

* Accurate token prices or trading volumes.
* Reliable APY projections or arbitrage opportunities.
* Relevant responses to user queries in prompt pipelines.
* Relevance: The pipeline outputs align with the specific use case (e.g., on-chain data analysis or market analysis & prediction).

### 3. Stability & Scalability

* The pipeline runs reliably without frequent errors or crashes.
* It can handle standard workloads (e.g., retrieving and processing data for common DeFi use cases).
* The pipeline can adapt to various execution environments (e.g., local, containerized, or cloud-based setups).

### 4. Documentation

As the tester, you should provide clear documentation of the pipeline, including:

* Use case description.
* Data sources used.
* Pipeline workflow.
* Expected outputs.
* Test cases or example queries are included to validate functionality.


# Workflow Steps

## Step 1: Adding Data to Vaults

### **Option A: From the Data Hub**

1. **Browse Data Hub:**

* Navigate to the Data Hub within the Sahara platform.
* Explore available datasets by filtering by domain, size, or licensing terms. (Some explore features coming in Beta)

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

2. **Purchase Dataset:**

* Select a dataset and click Purchase.
* Complete the payment process using the supported token or currency.

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

3. **Add Dataset to Vault:**

* A Screen will pop up and you will select the Vault you want to import to and click Import.
* Navigate to your Vaults Tab and see the imported data set.

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

### **Option B: Upload Personal Data**

1. **Navigate to Vaults:**

* Go to the Vaults Tab in the Sahara dashboard.

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

2. **Create a New Vault:**

* Click Create Vault and provide a name and description.

3. **Upload Data:**

* Click Upload Files and select files from your local storage.
* Supported formats include CSV, JSON, and Parquet.

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

4. **Configure Metadata:**

* Add metadata tags for better discoverability and provenance tracking.

## Step 2: Setting Up an Endpoint in the Compute Hub

1. **Access My Submissions:**

* Open the My Submissions on the Sahara dashboard after you purchase a model.

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

2. **Initiate:**

* Click the New Endpoint button on the My Submissions home page.

3. **Configuration:**

* Fill out the form with the following details:
* Select Provider: Select Provider from list (Lepton, Predibase, Sagemaker, Bedrock, OpenAI)
* Select Model: Opens a popup and allows users to select from available models on platform. Search and press “Select” when you have chosen a model.
* Name: Assign a unique name to the instance.

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

4. **Review and Create:**

* Review the configuration.
* Click Create Instance to launch the instance.

## Step 3: Creating and Deploying Pipelines

### **A. Create a Pipeline in Model Hub**

1. **Open Model Hub:**

* Navigate to the Model Hub Tab.

2. **Click Create Pipeline:**

* Choose between:
* RAG Pipeline: Requires Vault integration for retrieval tasks.
* Prompt-Based Pipeline: For conversational or structured AI tasks.

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

3. **Configure Pipeline:**

* Upload an avatar for the pipeline.
* Provide the following:
* Pipeline Name.
* Description.
* Instructions (prompt).
* Conversation Starter (optional).
* Select an AI model.
* (RAG only) Choose Vaults for data retrieval.

### **B. Deploy the Pipeline**

1. **Publish Pipeline:**

* Click Publish and select a compute provider matching your pipeline’s requirements.

<figure><img src="/files/3SednCSgaLPxxkPjQEKb" alt=""><figcaption></figcaption></figure>

2. **Generate API Endpoint:**

* Upon deployment, an API endpoint is generated for integration.

## Step 4: Integration and Monitoring

### **A. Test the Endpoint**

1. **Test the API:**

* Use the generated endpoint to send sample requests.

Example payload:

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

* Review the AI response and refine configurations as needed.

### **B. Monitor Metrics**

1. **Open Dashboard Tab:**

* Navigate to the Metrics Tab in your pipeline’s details page.

2. **Review Usage**:

* Monitor token usage, API calls, and system performance metrics.


# Developer Portal

### Overview

The Developer portal provides a user-friendly interface for accessing AI Services, AI Marketplace, Vault and Blockchain resources.&#x20;

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


# Compute Hub

### Overview

The Compute Hub provides a user-friendly interface to manage compute instances for AI workloads. Users can view, create, and manage instances, as well as deploy models with ease.

<figure><img src="/files/5ZIXH9n5cDYCFfPqBmBQ" alt=""><figcaption></figcaption></figure>

### **Features**

#### Instance List:

* Displays all running, stopped, or terminated instances.

#### Status indicators:

* Running: Green.
* Stopped: Red.

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

**Each instance card shows:**

* Instance Name
* Compute Provider
* Model used for Endpoint
* Machine type
* Price/Token

#### Actions:

* View Details: Click the eye icon to access detailed information.
* Start/Stop: Toggle an instance's operational state.
* Delete: Permanently remove an instance.

#### Create Instance:

* Click the Create Endpoint button to configure a new instance that provides a general use model endpoint.

**Workflow**

* Navigation: Use the search bar or filters (status, provider, model) to locate specific instances quickly.
* Quick Actions: Start, stop, or delete instances directly from the instance list.

### Instance Details Page

When an instance is selected, the user is directed to a detailed page with the following tabs:

### **Info Tab**

#### Endpoint Information:

* Instance Name
* Compute Provider
* Model used for Endpoint
* Machine type
* Price/Token

#### **Actions:**

* Edit Instance: Modify instance parameters.
* Stop Instance: Shut down the instance.
* Delete Instance: Remove the instance permanently.

### &#x20;**Metrics Tab**

#### Displays real-time metrics:

* CPU Usage: Current usage in percentage.
* Memory Usage: Real-time memory utilization.
* GPU Usage: GPU processing load percentage.

### **Logs Tab**

#### Activity Logs:

* Timestamped logs of instance activity (e.g., initialization, model loading, errors).
* Enables debugging and instance health monitoring.

### **Deployed Models Tab**

#### Model Overview:

* Lists all models deployed on the instance.

#### Details include:

* Model name.
* Deployment date.
* Model status (e.g., running or stopped).

#### Actions:

* View model details or stop/start specific models.

### Create Instance Workflow

**Steps**

1. **Initiate: click the New Endpoint button on the Compute Hub home page.**
2. **Configuration**

**Fill out the form with the following details:**

* **Select Provider**: Select Provider from list (Lepton, Predibase, Sagemaker, Bedrock, OpenAI)
* **Select Model**: Opens a popup and allows users to select from available models on platform. Search and press “Select” when you have chosen a model.
* **Name:** Assign a unique name to the instance.

3. **Review and Create:**

* Review the configuration.
* Click Create Instance to launch the instance.

### Common Use Cases

**1. Viewing Instance Metrics**

* Navigate to the Compute Hub home page.
* Select an instance and click the Metrics Tab to monitor performance.

**2. Deploying a Model**

* From the Deployed Models Tab, click Deploy Model.
* Follow the prompts to configure the deployment.

**3. Deleting an Instance**

* Locate the instance in the Compute Hub.
* Click the trash icon to delete it.
* Confirm the deletion in the pop-up dialog.

### Tips and Best Practices

* Regularly monitor metrics to optimize instance usage.
* Use the Logs Tab for quick troubleshooting.
* Organize instances with meaningful names for easier navigation.
* Always confirm configurations during instance creation to avoid unnecessary costs.


# Data Hub

### Overview

The Sahara AI Data Hub is a marketplace for AI-ready datasets, where users can browse, search, filter, and purchase datasets for use in AI pipelines. Purchased datasets can be managed within My Datasets and later imported into Vaults for AI processing.

<figure><img src="/files/9BrWUzISCY0kjmRULgi1" alt=""><figcaption></figcaption></figure>

**This guide covers:**

1. Navigating the Data Hub
2. Searching & Filtering Datasets
3. Viewing Dataset Details
4. Purchasing Datasets
5. Managing Purchased Datasets (My Datasets)
6. Using Datasets in Model Hub (Importing to Vaults)

### 1. Accessing the Data Hub

1. Navigate to AI Studio in the Sahara AI platform.
2. Click Data Hub to enter the dataset marketplace.

Once inside the Data Hub, you will see two primary tabs:

* All Datasets (default): Browse all available datasets.
* My Datasets: View datasets you have purchased or accessed.

(add image)

### 2. Searching & Filtering Datasets

#### Searching for a Dataset

1. In the All Datasets tab, use the search bar at the top to find datasets by name or keywords.

#### Filtering Datasets

1. Filter by Price: Sort between free and paid datasets.
2. Filter by Topics: View datasets by relevant categories.

#### Sorting Options

1. Most Recent: Displays the latest updated datasets first.
2. Lowest Price: Sorts datasets from free to the most expensive.

#### Pagination & Items per Page

* View the total number of datasets available.
* Adjust how many datasets appear per page (e.g., 10, 20, or more).
* Navigate through dataset pages.

Dataset Information

Each dataset listing provides high-level information, including:

* Name
* Description
* Size
* Language
* Type
* Tags
* Owner
* Date Updated
* Price

### 3. Viewing Dataset Details

1. Click on any dataset in All Datasets or My Datasets.
2. You will be directed to the Dataset Details Page, which contains:

**Description Tab:**

* Detailed dataset description.

**Data Information Tab:**

* Metadata such as format, structure, and compilation settings.

**Provider Tab:**

* Information about the dataset owner or contributor.

### 4. Purchasing a Dataset

If a dataset requires payment, you need sufficient credits, points, or fiat currency.

#### How to Purchase a Dataset

1. Click Access on the Dataset Details Page.
2. A confirmation pop-up will appear:

* "Are you sure you want to purchase this dataset?"
* Select OK to confirm or Cancel to abort.

If the purchase is successful:

* A system message will confirm the transaction.
* The Access button will change to Purchased.

If you lack sufficient funds, the purchase will fail, and you will be prompted to add more credits.

To return to browsing, click "< Marketplace" in the top left.

### 5. Managing Purchased Datasets (My Datasets)

1. Navigate to My Datasets in the Data Hub.
2. This page lists all datasets you have purchased.
3. Use the search bar to find a specific dataset.
4. Click on a dataset to open its Dataset Details Page.

⚠️ **Note: Purchased datasets cannot be removed from your account.**

### 6. Using Datasets in Model Hub (Importing to Vaults)

To use a dataset in an AI pipeline, it must first be imported into a Vault.

#### How to Import a Purchased Dataset to a Vault

1. Navigate to Vaults:

* Go to AI Studio → My Vaults.

2. Select a Vault:

* Click View Details on the vault where you want to import data.

3. Click "Import":
4. A pop-up window will appear with a search bar.
5. Search for Purchased Dataset:

* Locate the dataset you purchased in the Data Hub.

6. Select the Dataset:

* Click the checkbox next to the dataset.

7. Click "Import Selected":

* The dataset will now be available in your Vault.

### 7. Uploading Additional Data to a Vault

Users can also upload their own datasets to Vaults.

1. Click Upload on the Vault Detail Page.
2. Enter the following details in the pop-up:

* Dataset Name (Required)
* Remarks (Optional)
* Select File (Supported formats: CSV, JSON, Parquet)

3. Click Save to upload.

### Conclusion

The Sahara AI Data Hub is a robust marketplace for acquiring AI training data. By efficiently searching, filtering, purchasing, and managing datasets, users can enhance their AI models and deploy them through Sahara’s decentralized ecosystem. Purchased datasets are permanently stored under My Datasets and can be imported into Vaults for use in AI pipelines.

For further guidance, visit AI Studio → Data Hub → Help Center.

<br>

<br>


# Model Hub

### Overview

The Model Hub is a centralized space for users to browse, manage, and deploy AI models. It provides intuitive workflows for creating pipelines, reviewing configurations, and tracking model usage metrics. This documentation outlines the functionalities of the Model Hub, including model selection, pipeline creation, and pipeline management.

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

### 1. Model Hub Homepage

**Features**

1. **Model List (Model Hub Tab):**

* Displays available AI models optimized for various workflows.

*Metadata for each model includes:*

* Model type (e.g., RAG, Prompt-based).
* Brief description.
* Current configuration status.

2. **My Models Tab:**

* Lists all pipelines created by the user.

3. **Actions:**

* Review Pipelines: Access existing pipeline details.
* Configure AI Pipeline: Start a new pipeline configuration.

4. **Search and Filter:**

* Users can search by model name or filter models by type, use case, or ratings.

**Workflow**

* Navigate to the Model Hub via the Model Hub Tab.
* Use search and filters to explore models.
* Select a model to access its detailed information and deployment options.

### 2. Creating a Pipeline

**Steps**

1. **Initiate:**

* Go to the My Models Tab.
* Click Configure AI Pipeline to open the configuration interface.

2. **Choose Pipeline Type:**

*Select either:*

* RAG Template: Uses retrieval-augmented generation and integrates with Sahara Vault.
* Prompt Template: Standard prompt-based pipeline.

3. **Configure Pipeline:**

*Fill in the following details:*

* Name: Enter a unique pipeline name.
* Pipeline Type: Choose RAG or Prompt.
* Description: Briefly describe the pipeline’s purpose.
* Instruction (Prompt): Define the system’s behavior (e.g., "You are a helpful assistant").
* Conversation Starter: Initial text to initiate user interaction.
* Select Model: Choose the AI model to power the pipeline.
* Sahara Vault Integration (RAG only): Select Vaults for data retrieval.

4. **Publish Pipeline:**

* Click Publish to finalize the pipeline.

*Select a compute instance that matches the pipeline requirements.*

* Each model will already be matched to compute instances that match the model’s requirements, so only the instances supported will be available to select.

Generate the API endpoint for integration.

### 3. Pipeline Management

**My Models Tab:**

* Access all pipelines created by the user.

**Actions:**

* **Chat**: Begin Chatting with AI Pipeline
* **Details**: Access pipeline details and Modify configuration.
* **Delete Pipeline:** Remove the pipeline permanently.

**Pipeline Details:**

* Navigate to a pipeline from the My Models Tab.

**Tabs within the Pipeline:**

**AI Model Info**:

* Displays pipeline configuration details (e.g., name, type, model, instructions).

**Configuration:**

* View or edit compute instance settings.
* Manage API keys (generate new keys if needed).

**Dashboard**

*Monitor real-time metrics:*

* Token usage.
* API calls.
* System performance.

### 4. Detailed Model Pages

**Features**

*Model Details:*

* Comprehensive description of the model’s capabilities.

*RAG-specific details for models with retrieval capabilities:*

* Sahara Vault integration.
* File retrieval features.
* Performance metrics (e.g., latency, accuracy).

**Actions:**

*Get the Model*:

* Deploy the model or add it to My Models for further customization.

### 5. Model Deployment

**Steps**

1. **Initiate Deployment:**

* Select a model from My Models Tab.
* Click Deploy to configure deployment parameters.

2. **Configure Deployment:**

*Define:*

* System Prompts.
* RAG Settings (e.g., retrieval options).

3. **Review and Deploy:**

* Confirm deployment settings.
* Click Deploy to initiate.
* The system generates a unique API endpoint.

4. **Monitor Deployment:**

* Track deployment status in real-time.
* Access usage instructions for the API endpoint.

### 6. Tips and Best Practices

* Use descriptive names for pipelines to streamline management.
* Regularly monitor the Dashboard Tab for pipeline performance insights.
* When creating RAG pipelines, ensure that Sahara Vaults are properly integrated.
* For large-scale applications, ensure the compute instance selected matches the model's requirements.

<br>


# Data Vault

### &#x20;Overview

Sahara AI's Data Vaults provide a secure and decentralized storage solution for AI developers and data providers. Users can create and manage their vaults, import datasets from the Data Hub, upload their own data, and organize datasets efficiently.

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

**This guide walks through:**

* Managing Vaults (Creating, Viewing, and Deleting)
* Importing Data from the Data Hub
* Uploading Data to a Vault
* Managing Datasets

### 1. My Vaults Page

The My Vaults page serves as the main interface for managing user data vaults.

#### Features

* View Vaults: Lists all created vaults.
* Create Vault: Allows users to add new vaults.
* View Details: Provides insights into individual vault contents.
* Delete Vault: Removes unwanted vaults permanently.

#### How to Access

1. Navigate to AI Studio → My Vaults.
2. View all your created vaults.
3. Click View Details to explore individual vaults.

### 2. Creating a New Vault

**To create a data vault:**

1. Click Create Vault on the My Vaults page.
2. A pop-up will appear asking for:

* Vault Name (Required)
* Vault Description (Optional)

3. Click Create to finalize.

*The new vault will now be visible on the My Vaults page.*

### 3. Deleting a Vault

*To delete a vault:*

1. Locate the vault on the My Vaults page.
2. Click the Delete button.
3. A confirmation pop-up will appear.
4. Click OK to confirm, or Cancel to abort.

⚠️ **Note: Deleting a vault permanently removes all stored datasets.**

### 4. Viewing Vault Details

1. Click View Details on any vault.
2. The Vault Detail Page opens, displaying:

* A list of stored datasets.
* Options to Import Data or Upload Data.

### 5. Importing Data from the Data Hub

Users can import datasets they have previously purchased from the Data Hub.

#### Steps to Import Data

1. Navigate to the Vault Detail Page.
2. Click Import.
3. A pop-up will appear with a search bar.
4. Search for datasets available in the Data Hub.
5. Select the dataset by clicking the checkbox.
6. Click Import Selected to transfer it to your vault.

Once imported, the dataset will be available in the vault.

### 6. Uploading Data to a Vault

Users can also upload their own datasets.

#### Steps to Upload Data

1. Navigate to the Vault Detail Page.
2. Click Upload.
3. A pop-up will appear asking for:

* Dataset Name (Required)
* Remarks (Optional)
* Dataset File (Choose a file to upload)

4. Click Save to complete the upload.

⚠️ Supported Formats: (To be determined, list will be updated).

Once uploaded, the dataset will be visible in the vault.

### 7. Managing Datasets

After importing or uploading data, users can view, delete, and inspect dataset details.

#### Viewing Dataset Details

1. Click View Details on a dataset.
2. The Dataset Info Page displays:

* Dataset Name
* Description
* MD5 Checksum
* File Size
* Modality (Text, Image, etc.)
* Content Type
* Creation Timestamp
* Dataset Versions

#### Deleting a Dataset

1. Click Delete on a dataset.
2. A pop-up will ask for confirmation.
3. Click OK to confirm, or Cancel to abort.

⚠️ Note: Deleting a dataset removes it permanently.

### Conclusion

Sahara AI's Data Vaults provide a structured way to manage datasets efficiently, ensuring secure and decentralized data storage. Whether importing data from the Data Hub or uploading custom datasets, users have complete control over their AI training data.

<br>

<br>


# Rewards

The following incentives will be distributed to testers after the testing phase ends:

### **Compute Credit Incentives**

* $100 in Initial Compute Credits → Granted only to testers who submit both the final questionnaire and a working AI pipeline at the end of the testing phase. This allows them to continue experimenting and refining their models.
* $300 in Additional Compute Credits → Awarded to the top 20% of testers based on contributions, performance, and pipeline quality.

### **Participation-Based Incentives**

* Weekly Questionnaire Participation → Testers who fill out the weekly questionnaires will be granted 20 Sahara Points per submission.

### **Feedback-Based Incentives**

* Approved Feedback → Testers who submit high-quality feedback approved by the Sahara Team will receive 180 Sahara Points.

### **Leaderboard-Based Incentives**

Sahara Points Based on Leaderboard Performance → Testers will be ranked based on contributions.


# Credits & Billing

### Overview

Usage tracking and billing allows you to monitor and record expenditures on the platform. It provides detailed insights into resource consumption, such as API calls, token usage, and compute hours. U

Users can view a transparent breakdown of charges and payment history, helping them manage budgets effectively. This module supports real-time updates and allows users to download reports for auditing or analysis. Its goal is to ensure accountability and financial clarity for all transactions.

### Adding Credit

#### Step 1: click +Add Credit

#### Step 2: select the token you'd like to use (1 credit=1 USDT)

<figure><img src="/files/9ozY4M6dWmjsU9OQspIp" alt=""><figcaption></figcaption></figure>

### Depositing Crypto

#### Step 1: click Deposit Crypto

#### Step 2: enter the amount you'd like to buy or you can choose to receive using the QR code

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

#### Step 3: complete the purchase with MoonPay or AlchemyPay

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

### Redeeming Credit with a Coupon

**Important: all testers must reach out to the Sahara team to receive their unique code for claiming credits.**

#### **Step 1:** click on credits & billing under your name in the platform

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

#### Step 2: enter the code you received&#x20;

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


# AI Marketplace

### Overview

#### What is the Sahara AI Marketplace?

The [Sahara AI](https://saharaai.com/) Marketplace is a platform where anyone can discover, use, and (soon) upload AI assets like datasets, models, and agents. It’s designed to make AI development more open, fair, and rewarding for everyone involved.

Whether you’re an AI developer, researcher, hobbyist, or someone just exploring what’s possible with AI, the marketplace gives you access to high-quality tools and resources—with clear rules and real ownership.

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

#### What Can You Do on the Marketplace?

* Use AI Assets: Browse datasets and models to build your own AI projects. Many are free and open-source during the beta.
* Build AI Agents: Use Sahara tools to connect models and datasets into functional agents.
* Upload & Monetize Datasets: Users can now upload datasets, license them, and earn revenue when others use them.

#### What Makes Sahara Different?

* Real Ownership: Assets are registered on the blockchain, giving creators full control and credit.
* Co-Ownership Support: Multiple contributors can be recognized and rewarded as co-owners of an asset. Revenue is automatically shared based on their role or contribution.
* Transparent Licensing: Licensing terms are visible and enforced from the start.
* Monetization (Coming Soon): In future updates, contributors will earn revenue when their assets are licensed, used, or reused in new projects.
* Automatic Royalty Sharing: When monetization goes live, contributors will earn ongoing royalties from downstream usage of their work.
* No Middlemen: All licensing and payments will be handled by smart contracts—no manual tracking, no hidden cuts.

#### Example: How You Might Use Sahara

1. You find a free dataset and a licensed model in the marketplace.
2. You use Sahara’s no-code tools to build a custom AI agent.
3. You test the agent and deploy it.
4. (Coming Soon) If you choose to monetize it, Sahara will handle payments and share revenue with any upstream contributors.

***

## How Licensing Works

Every asset in the marketplace includes a license that clearly explains what you can and can’t do with it.&#x20;

The creator chooses the license type:

1. **Open Use**: Free to use, modify, and share.
2. **Non-Commercial Remix**: You can remix it, but only for personal or non-commercial use.
3. **Commercial Use**: You can use it for business, but not modify or resell it.
4. **Commercial Remix**: Full commercial use and remixing allowed, with automatic revenue sharing to original creators.

***

## Asset Categories

The Sahara AI Marketplace supports three main categories of assets: **datasets, models, and agents**. Datasets include structured or labeled information used to train or inform models-such as CSVs, text corpora, or annotated images. Models are pre-trained or fine-tuned machine learning components available for direct use or integration. Agents (coming soon) are interactive applications built using models and datasets, designed for specific tasks like summarization, customer support, or classification. Each asset type can be licensed, and monetized (coming soon) directly within the platform.

### Datasets

Structured collections of data—like text, images, or labeled examples—used to train, evaluate, or fine-tune AI models. Contributors can upload original datasets, define licensing terms, and (once monetization is live) earn royalties from downstream usage.

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

### Models

Pre-trained or fine-tuned AI models, including large language models (LLMs), available for inference or integration into workflows and agents. Creators can register models, define licensing terms, and (once monetization is live) earn revenue when their models are used, remixed, or deployed in commercial applications.

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

### My Assets

A personalized dashboard where users can view and manage their AI assets. This includes datasets or models they’ve uploaded, assets they’ve licensed or downloaded, and (in the future) deployed agents. Users can track submission status, update metadata, monitor usage (once live), and access assets they’ve contributed to or co-own.

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

## Dataset Monetization

With the August 18 release, dataset creators can now monetize their contributions directly through the Sahara AI Marketplace. This feature enables a new layer of value for contributors by connecting submitted datasets to payments and smart contracts.

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

### Key Features

* Dataset Submissions

  Upload and register datasets on the marketplace. Once approved, they become eligible for monetization.
* My Assets Page Update

  A new minted icon has been added to the *My Assets* dashboard, making it easy to identify which datasets have been successfully minted and are live in the marketplace.
* Cart & Payments

  Buyers can now add datasets to their cart and complete purchases using the integrated payments system.
* Contracts

  Every transaction is secured by on-chain smart contracts, ensuring transparent and trustless execution.

### How to List a Dataset

1. Navigate to the [Developer Platform](https://app.saharaai.com/developer-platform), click My Assets and create your profile if this is your first time logging in with your wallet.
2. Once complete, upload and register your dataset
3. Once approved, your dataset will appear under My Assets with the minted icon based on the appropriate licensing.
4. Navigate to My Submissions and get started by setting up your creator profile.
5. Click "Create" and follow the prompts to list your dataset based on the license type so buyers can discover and purchase your dataset through the marketplace.&#x20;
6. Once complete, your asset will undergo mandatory review for quality assurance prior to be listed.

### Billing

Billing is where your wallet balance will be displayed in SAHARA and USD1, either of which can be used to purchase datasets.

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

***


# FAQs

### 1. What types of files can I upload?

You can upload text-based files, including prompts, Q\&A pairs, transcripts, and spreadsheet-style data containing numbers and text. They must be csv, json or txt.

### 2. Is there a size limit for my dataset upload?

Yes, each dataset upload must be under 50 MB. Larger files should be split into smaller uploads. Currently, users are limited to uploading 3-datasets per week.&#x20;

### 3. How do I prove ownership of my dataset?

Ownership is proven by registering your dataset on-chain during the upload process. This creates a verifiable record linking you directly to your dataset.

### 4. Can I update or delete my dataset after registering?

Registered datasets can be deleted in the "My Assets" page.

### 5. Will my dataset be publicly accessible once uploaded?

No, datasets remain private unless explicitly shared or listed publicly by the dataset owner.

### 6. How long does dataset registration take?

Registration typically takes a few minutes, but may vary slightly depending on blockchain network conditions.

### 7. Can I transfer my NFT?

No - your ownership NFT is non-transferable.

### 8. Why isn't the login working?

If you're having issues logging in with your wallet, ensure you are on the Sahara Testnet network.


# Marketplace Glossary

#### AI Asset

A dataset, model, or agent that can be registered, shared, reused, or monetized on the Sahara AI Marketplace.

#### Agent

A deployable AI application—like a chatbot or automation tool—built using models and datasets.

#### Attribution Graph

The on-chain system that tracks how assets are reused or built on, ensuring upstream contributors receive royalties for downstream usage.

#### Commercial Remix License

Allows full commercial use and remixing of an asset, with automatic revenue sharing to the original creator and contributors.

#### ContributionNFT

A non-transferable token representing your contribution to an asset (e.g., data labeling or model fine-tuning), used to calculate royalty shares.

#### Dataset

A structured data collection (e.g. text, CSV, images) used to train or inform AI models or agents.

#### LicenseNFT

A smart contract-based license that defines how an asset can be used—commercially, non-commercially, or freely—and automates royalty payments.

#### Marketplace

The core platform where users can browse, license, use, and (soon) monetize AI assets like datasets, models, and agents.

#### Model

A pre-trained or fine-tuned machine learning model—including LLMs—available for use, integration, or further development.

#### Monetization

The ability to earn revenue through usage, licensing, or remixing of your registered AI assets (launching post-July 2025).

#### Open Use License

A license that allows anyone to freely use, remix, or distribute an asset without payment.

#### OwnershipNFT

A blockchain-registered token proving original authorship and ownership of an asset, enabling participation in revenue distribution.

#### Remix / Derivative

Creating a new asset based on an existing one—such as training a model using a registered dataset or embedding a model in an agent.

#### Smart Contract

Self-executing blockchain code that enforces licensing, logs usage, and automates royalty payouts.

#### Testnet

The current staging environment (Siwa Testnet) for experimentation. Monetization and real asset ownership will go live on mainnet post-July 2025.

#### Wallet

A crypto wallet (e.g. MetaMask) used to manage asset registration, ownership, and receive payments on the platform.

<br>


# API Documentation

### Overview

This document provides a comprehensive guide to using the Sahara API. It walks you through discovering available models and compute providers, querying model metadata, and making inference requests using both raw HTTP and OpenAI-compatible Python clients.\
\
The API is especially useful for developers integrating multiple model providers into their workflow while maintaining a unified interface.\
\
You will learn how to:

* Query all available models and compute providers
* Filter models or providers using specific criteria
* Access model usage details
* Send inference requests through Langchain, OpenAI SDK, or direct HTTP
* Implement multi-agent logic with routing

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

### Preparation

### API Setup

To access the Sahara Model Hub API, you need a valid API key. This key is required to authenticate every API request.

#### How to Get Your API Key

1\. Go to the Developer Portal &#x20;

&#x20;  Open: <https://portal.saharalabs.ai>

2\. Log In and Access API Keys &#x20;

&#x20;  Click your profile icon (top-right) → select "API Key".

3\. Create a New Key &#x20;

&#x20;  Click "Create API Key", assign it a name like "dev-client", and generate it.

4\. Copy and Store Securely &#x20;

&#x20;You can only view the key once. Save it securely in an environment variable, config file, or secret manager.

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

Note: Never expose your API key in public code or repositories. Treat it as a secret credential.

Once you have your API key, configure it in your script. This will be required in all requests sent to the Sahara Model Hub API.

Configure http header with you API\_KEY:

```
  API_KEY = "your-api-key"
    HEADERS = {
        "Accept": "application/json",
        "x-api-key": API_KEY,
    }
```

Replace "your-api-key" with the key you obtained from the Developer Portal.

### Discover Available Models & Providers

\
The Sahara API allows you to dynamically explore available models and compute providers.

#### Get All Models

This command fetches all registered models across providers:

```
curl -s 'https://portal.saharalabs.ai/api/compute/models'   -H 
'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

#### Sample Response

```
[
  "llama-3-8b",
  "gpt-4o",
  "deepseek-ai/DeepSeek-V3",
  "deepseek-ai/DeepSeek-R1",
  "llama3-3-70b",
  "Qwen/Qwen2.5-72B-Instruct-Turbo",
  "meta-llama/Llama-3.3-70B-Instruct-Turbo",
  "Qwen/Qwen2.5-7B-Instruct-Turbo",
  "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
  "llama3-1-8b",
  "deepseek-ai/DeepSeek-V3-0324"
]
```

### Get All Providers

This API lists all compute providers (e.g., OpenAI, Lepton, Together):

```
curl -s 'https://portal.saharalabs.ai/api/compute/providers'   -H 
'Accept: application/json'   -H 
'x-api-key: your-api-key'
```

#### Sample Response

```
["lepton","predibase","sagemaker","bedrock","openai","together"]
```

### Get Models by Provider

Query models served by a specific provider

{% code overflow="wrap" %}

```
curl -s 'https://portal.saharalabs.ai/api/compute/models?provider=predibase'   -H 'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

{% endcode %}

#### Sample Reponse

```
[
  "llama-3-8b"
]
```

### Get Providers by Model

Find which providers serve a specific model, for example, when we want to find the provider serving deepseek-ai/DeepSeek-V3

{% code overflow="wrap" %}

```
curl -s 'https://portal.saharalabs.ai/api/compute/providers?model=deepseek-ai/DeepSeek-V3'   -H 'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

{% endcode %}

#### Output

```
[
  "together"
]
```

### Get Model Details

Fetch metadata and detailed usage requirements for a specific model-provider pair:

{% code overflow="wrap" %}

```
curl -s 'https://portal.saharalabs.ai/api/compute/modelDetail?model=deepseek-ai/DeepSeek-V3&provider=together'   -H 'Accept: application/json'   -H 'x-api-key: your-api-key' | jq
```

{% endcode %}

#### Sample Response

```
{
  "id": "1beec936-672e-4e63-9ef9-af721d0ed3e2",
  "name": "deepseek-ai/DeepSeek-V3",
  "description": "together AI deepseek-ai/DeepSeek-V3",
  "is_public": null,
  "license": null,
  "model_size": 0,
  "tags": null,
  "tensor_type": null
}
```

### Model Inference by Raw HTTP Request

```python
import os
import requests

SAHARA_DEVPORTAL_API_KEY = 'your-api-key'
MODEL_BASE_URL = "https://portal.saharalabs.ai/api/compute"

model_name = "gpt-4o"
model_provider = "openai"

url = f"{MODEL_BASE_URL}/chat/completions"
headers = {
   "Content-Type": "application/json",
   "Authorization": f"Bearer {SAHARA_DEVPORTAL_API_KEY}",
   "OpenAI-Organization": model_provider
}
data = {
   "model": model_name,
   "messages": [
       {"role": "system", "content": "You are a helpful assistant."},
       {"role": "user", "content": "Hello!"}
   ]
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
```

#### Sample Response

{% code overflow="wrap" %}

```
{'id': 'chatcmpl-BHOQRlHqSrfSMi3wFtOYzxVOZWufb', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Hello! How can I assist you today?', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None, 'annotations': []}}], 'created': 1743485167, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': 'default', 'system_fingerprint': 'fp_898ac29719', 'usage': {'completion_tokens': 10, 'prompt_tokens': 19, 'total_tokens': 29, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}
```

{% endcode %}

### Model Inference by OpenAI SDK

If you prefer to use OpenAI's SDK, the Sahara endpoint fully supports OpenAI-compatible APIs.

#### Non-Streaming Response

```python
from openai import OpenAI
client = OpenAI(
   base_url=MODEL_BASE_URL,
   api_key=SAHARA_DEVPORTAL_API_KEY,
   organization="openai"
)
completion = client.chat.completions.create(
 model="gpt-4o",
 messages=[
   {"role": "system", "content": "You are a helpful assistant. You are a helpful assistant. You are a helpful assistant. You are a helpful assistant."},
   {"role": "user", "content": "Hello! Who are you man? Are you ok? Hey hey hey"}
 ]
)
print(completion.choices[0].message)
```

#### Sample Output

{% code overflow="wrap" %}

```
ChatCompletionMessage(content="Hello! I'm an AI assistant here to help you with any questions or information you need. How can I assist you today?", refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None)
```

{% endcode %}

#### Streaming Response

```python
async def generate(model_name, model_provider):
   print(f"Testing Streaming Output of {model_name} on {model_provider}")
   chat = ChatOpenAI(
       model=model_name,
       api_key=SAHARA_DEVPORTAL_API_KEY,
       openai_api_base=MODEL_BASE_URL,
       organization=model_provider,
       streaming=True,
       extra_body={
           "compute_provider": "lepton"
       }
   )


   messages = [
       HumanMessage(content="Hello! How are you are you are you? Hey hey hey!")
   ]


   try:
       full_content = ""
       async for chunk in chat.astream(messages):
           if chunk.content:
               full_content += chunk.content
               print(full_content)


       print(full_content)
       return


   except Exception as e:
       print(f"Streaming error: {e}")
       error_data = {"type": "error", "message": str(e)}
       print(f"data: {json.dumps(error_data)}\n\n")




async def main():
   for combination in model_provider_combinations[:1]:
       await generate(combination["model_name"], combination["model_provider"])


if __name__ == '__main__':
   asyncio.run(main())
```

#### Sample Response

```
Testing Streaming Output of gpt-4o on openai
Hello
Hello!
Hello! I'm
Hello! I'm here
Hello! I'm here and
Hello! I'm here and ready
Hello! I'm here and ready to
Hello! I'm here and ready to help
Hello! I'm here and ready to help.
Hello! I'm here and ready to help. What
Hello! I'm here and ready to help. What can
Hello! I'm here and ready to help. What can I
Hello! I'm here and ready to help. What can I do
Hello! I'm here and ready to help. What can I do for
Hello! I'm here and ready to help. What can I do for you
Hello! I'm here and ready to help. What can I do for you today
Hello! I'm here and ready to help. What can I do for you today?
Hello! I'm here and ready to help. What can I do for you today?
```

### Model Inference Using Langchain

Prerequisites

Ensure the following tools and packages are installed before continuing

{% code overflow="wrap" %}

```
pip install langchain_openai
```

{% endcode %}

langchain\_openai is a Python library that provides integration between LangChain and OpenAI’s API.&#x20;

You can interact with sahara models using the \`langchain\` interface. This is useful for testing streaming outputs and experimenting with conversational flows.\
\
Below is an example using three working models and one invalid one to demonstrate both success and failure:

```python
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
import asyncio
import json

model_name = "gpt-4o"
model_provider = "openai"

chat = ChatOpenAI(
   model=model_name,
   api_key=SAHARA_DEVPORTAL_API_KEY,
   openai_api_base=MODEL_BASE_URL,
   organization=model_provider,
   streaming=False,
)

messages = [
   HumanMessage(content="Hello! How are you?")
]


def generate():
   try:
       res = chat.invoke(messages)
       print(res)

   except Exception as e:
       print(f"Streaming error: {e}")
       error_data = {"type": "error", "message": str(e)}
       print(f"data: {json.dumps(error_data)}\n\n")


if __name__ == '__main__':
   generate()

```

#### Sample Response

{% code overflow="wrap" %}

```
content="Hello! I'm just a program, so I don't have feelings, but I'm here and ready to help you. How can I assist you today?" additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 30, 'prompt_tokens': 13, 'total_tokens': 43, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4o-2024-08-06', 'system_fingerprint': 'fp_eb9dce56a8', 'finish_reason': 'stop', 'logprobs': None} id='run-427fd56e-853e-4cb4-9c29-8f48cccab9d6-0' usage_metadata={'input_tokens': 13, 'output_tokens': 30, 'total_tokens': 43, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}

```

{% endcode %}

### Multi-Agent Integration (OpenAI Agents SDK)

The Sahara API supports OpenAI's 'agents-python' package. This example sets up three agents:&#x20;

1. A Spanish-speaking agent
2. An English-speaking agent
3. A triage agent that routes input based on langauge

#### Prerequisites

Ensure the following tools and packages are installed before continuing

{% code overflow="wrap" %}

```
pip install nest_asyncio
pip install "openai-agents @ git+https://github.com/openai/openai-agents-python.git"
```

{% endcode %}

* openai-agents is a Python SDK that provides an Agent Framework for building intelligent agents.
* nest\_asyncio Allows you to run asynchronous code

```python
import os
from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel, RunConfig
import asyncio
import nest_asyncio
nest_asyncio.apply()


SAHARA_DEVPORTAL_API_KEY = 'your-api-key'
MODEL_BASE_URL = "https://portal.saharalabs.ai/api/compute"
os.environ["OPENAI_BASE_URL"] = os.environ["OPENAI_API_KEY"] = 


client_openai = AsyncOpenAI(
   api_key=SAHARA_DEVPORTAL_API_KEY,
   base_url=MODEL_BASE_URL,
   organization="openai"
)


client_together = AsyncOpenAI(
   api_key=SAHARA_DEVPORTAL_API_KEY,
   base_url=MODEL_BASE_URL,
   organization="together"
)


spanish_agent = Agent(
   name="Spanish agent",
   instructions="You only speak Spanish. Your name is James",
   model=OpenAIChatCompletionsModel(
       model="deepseek-ai/DeepSeek-V3",
       openai_client=client_together,
   )
)




english_agent = Agent(
   name="English agent",
   instructions="You only speak English. Your name is Jesse",
   model=OpenAIChatCompletionsModel(
       model="deepseek-ai/DeepSeek-V3",
       openai_client=client_together
   ),
)

triage_agent = Agent(
   name="Triage agent",
   instructions="Handoff to the appropriate agent based on the language of the request.",
   handoffs=[spanish_agent, english_agent],
   model=OpenAIChatCompletionsModel(
       model="gpt-4o",
       openai_client=client_openai
   ),
)

async def main():
   result = await Runner.run(triage_agent, input="Hola, ¿Cómo te llamas?")
   print(result.final_output)


asyncio.run(main())
```

#### Sample Response

```
¡Hola! Me llamo James. ¿En qué puedo ayudarte hoy?
```

This example demonstrates complex routing logic using OpenAI-compatible models served from Sahara.

### Error Handling and Best Practices

**Error Codes**

* 400 Bad Request: Check request formatting.
* 404 Not Found: Verify pipeline or model IDs.
* 500 Internal Server Error: Retry or contact support.

**Best Practices**

1. Secure Keys:

* Use environment variables to store API keys securely.

2. Monitor Usage:

* Regularly review metrics to optimize performance.

3. Retry Logic:

* Implement retry logic for transient errors (e.g., 500 Internal Server Error).


# Quick Start Guide

This guide helps developers and app builders onboard quickly, focusing on the essential workflows for Alpha and Beta releases. Users can either use the **Graphical User Interface (GUI)** to navigate through the AI Model Pipeline setup or use[ our API.](/user-guide-marketplace/api-documentation)

### AI Pipeline Guidelines for Testers

Testers are responsible for designing, building, and deploying AI pipelines that align with the platform’s AI capabilities and dataset requirements. These pipelines must be scalable, production-ready, and optimized for DeFi analytics.&#x20;

**To ensure effectiveness, an AI pipeline should adhere to the following principles:**

#### 1. Focus on DeFi AI Workflows

• Address critical DeFi use cases such as yield rate queries, cross-chain cost estimation, risk assessment, and token pricing.

• Simulate real-world DeFi interactions, including liquidity provision, lending strategies, and governance activity.

#### 2. Integrate Multi-Source Data

• Utilize both on-chain and off-chain data from the Data Marketplace and external APIs.

• Merge diverse DeFi datasets while ensuring data consistency, proper time-stamping, and validation.

#### 3. Meet Production Standards

• Implement robust monitoring, error handling, and traceable data governance mechanisms.

• Support real-time or batch inference to enable efficient DeFi queries.

#### 4. Optimize for Performance & Scalability

• Efficiently process large-scale transactions and real-time queries.

• Enhance performance through optimized API management, caching strategies, and data batching.

#### 5. Ensure Clear Documentation & Reproducibility

• Provide structured deployment guides and configuration options to enable seamless replication.

• Design pipelines to support future modifications and scalability across multi-chain environments.

These guidelines ensure that AI pipelines contribute effectively to DeFi analytics, offering reliable insights while maintaining high performance and adaptability.

### Signing into the Portal

Signing into Sahara AI Studio is easy, here’s how…

***Click the “Sign in” button in the top right corner of the map***

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


# Introduction

Welcome to the [Sahara AI](https://saharaai.com/) Blockchain Developer Docs—a comprehensive resource designed to empower both newbies and seasoned developers.&#x20;

Here, you’ll find detailed guides, technical references, and best practices to help you navigate and build on the Sahara Blockchain. Whether you’re setting up your development environment or deploying smart contracts, these docs provide the insights and tools needed to get started.

### What is the Sahara Blockchain?

Sahara Blockchain is a Layer 1 blockchain platform specifically engineered to support the decentralized development, deployment, and monetization of AI assets. Built using the Cosmos SDK and featuring full EVM compatibility, Sahara Blockchain creates a comprehensive ecosystem where developers can tokenize and manage the entire AI development lifecycle - from datasets to models to complex AI pipelines.

### The Why Behind Sahara Blockchain

#### The Current State of AI Development

We are witnessing an unprecedented concentration of power in artificial intelligence development. Today, a handful of large technology companies control not just the most powerful AI models, but also the vast computational resources needed to train them. This centralization extends beyond hardware and software - these companies also maintain privileged access to massive proprietary datasets used to train their models.

This consolidation of AI development creates profound challenges for the broader technology ecosystem. Individual developers and smaller teams, despite having innovative ideas and technical expertise, find themselves effectively locked out of meaningful participation in AI advancement. Without access to enterprise-scale compute resources or vast training datasets, they cannot compete with or build upon the capabilities being developed by major AI labs.

The implications of this centralization run deep. When AI development is controlled by a small number of companies, we see:

* Research directions and applications becoming increasingly narrow, focused primarily on commercial interests rather than broader societal benefit
* Knowledge providers and data contributors - whose work forms the foundation of AI models - receiving neither fair compensation nor recognition for their contributions
* A troubling lack of transparency around how models are trained and what data they incorporate, making it difficult to audit for biases or ensure ethical development
* Innovation being stifled as smaller players cannot access the resources needed to experiment with and advance AI technology

### Sahara's Vision for Decentralized AI

The Sahara Blockchain represents a fundamental shift in how artificial intelligence can be developed and deployed. We envision a future where AI development is not controlled by a handful of companies, but rather emerges from the collaborative efforts of a global community of developers, researchers, and contributors.

Our platform creates the infrastructure for truly decentralized AI development by:

* Tokenizing the entire AI supply chain - from raw datasets to trained models to complex pipelines. Every contribution becomes a verifiable digital asset with clear ownership and revenue rights.
* Establishing transparent attribution systems that ensure everyone who contributes to an AI asset's development - whether through data, compute resources, or technical improvements - receives fair compensation for their work.
* Creating open marketplaces where AI assets can be discovered, licensed, and monetized, enabling developers of all sizes to participate in the AI economy.
* Building decentralized compute networks that democratize access to the processing power needed for modern AI development.

### How Sahara Makes This Possible

At its core, Sahara introduces an entirely new asset class to the blockchain world: on-chain AI assets. These assets represent everything needed to develop artificial intelligence:

Training datasets are minted as digital assets with comprehensive metadata about their domain, licensing terms, and structural properties. This creates a transparent marketplace for high-quality training data.

AI models - whether they're base models or specialized fine-tuned versions - become on-chain assets that maintain clear lineage to their training data and development history. This enables proper attribution and revenue sharing among all contributors.

Even incremental improvements - like enhanced datasets, optimized training techniques, or innovative model architectures - can be minted as assets, ensuring that every meaningful contribution to AI development can be recognized and rewarded.

By building these capabilities on a high-performance blockchain specifically optimized for AI operations, Sahara creates the technical foundation for a more open, collaborative, and equitable AI development ecosystem. We're not just creating new technology - we're enabling a fundamental transformation in how artificial intelligence can be developed and shared across the global technology community.

This is the future of AI development we believe in - one where innovation comes from everywhere, not just a select few companies, and where the benefits of artificial intelligence can be more broadly and fairly distributed across society.

<br>


# Core Concepts

### Platform Architecture

[Sahara](https://saharaai.com/) Blockchain employs a sophisticated three-layer architecture designed specifically for decentralized AI development. Each layer serves a distinct purpose while working in harmony to create a comprehensive platform for AI asset management and execution.

### Base Layer: Sahara Network

At the foundation of our platform lies the Sahara Network, a high-performance Layer 1 blockchain built using the Cosmos SDK and TendermintBFT consensus mechanism. We chose this architecture to provide:

* Enterprise-grade reliability through Byzantine Fault Tolerance, ensuring network consistency even if some nodes behave maliciously or fail
* Near-instant transaction finality, critical for real-time AI operations and asset management
* Full EVM compatibility, allowing developers to leverage existing Ethereum tools and expertise

The base layer handles fundamental blockchain operations including transaction processing, block creation, and network consensus. Through our implementation of Tendermint, we achieve both high throughput and quick finality - essential characteristics for managing complex AI workloads.

### Smart Contract Layer: Sahara Protocol

Built atop our base layer, the Sahara Protocol consists of a specialized framework of smart contracts that manage AI assets throughout their lifecycle. This layer implements core functionality including:

* Asset registration and metadata management&#x20;
* Licensing and access control&#x20;
* Revenue distribution and royalty tracking&#x20;
* Relationship mapping between different AI assets

The protocol layer acts as the "business logic" of our platform, enforcing rules around ownership, usage rights, and value distribution. Through our AI-native blockchain protocols, we ensure that all interactions with AI assets follow predefined governance and economic models.

### Execution Layer: Sahara AI Execution

The topmost layer handles the practical aspects of running AI workloads in a decentralized environment. This includes:

* Dynamic allocation of compute resources across our network&#x20;
* Secure model deployment and inference execution&#x20;
* Integration with Trusted Execution Environments (TEEs)

The execution layer bridges the gap between on-chain asset management and real-world AI operations, ensuring that models and datasets can be effectively utilized while maintaining security and performance standards.

### Network Overview&#x20;

#### Sahara Testnet

The Sahara Testnet serves as our development and testing environment, providing developers with a safe space to experiment with AI asset management and smart contract deployment. This testnet maintains all the core functionalities of our planned mainnet while allowing free experimentation through testnet tokens.

#### Testnet Specifications

The testnet implements a hybrid architecture that leverages both Cosmos SDK capabilities and Ethereum Virtual Machine compatibility with the following configuration:

Network Details:

```
Network Name: Sahara Testnet
RPC URL: https://testnet.saharalabs.ai
Chain ID: 313313
Currency Symbol: SAHARA
Block Explorer: https://testnet-explorer.saharalabs.ai
```

Chain Configuration:

```
Cosmos Chain ID: sahara-test-1
Ethereum Chain ID: 313313
Native Token: SAHARA
Bech32 Prefix: sah
```

For transaction verification and network exploration, we maintain a comprehensive block explorer at[ https://testnet-explorer.saharalabs.ai](https://testnet-explorer.saharalabs.ai).&#x20;

#### Upcoming: Sahara Mainnet

Our production network, Sahara Mainnet, is currently under development. The mainnet will introduce several additional features focused on security, scalability, and economic sustainability:

* Enhanced security measures for protecting high-value AI assets
* Optimized performance for production-grade AI workloads
* Live economic models with real token value
* Production-grade validator infrastructure

We will announce the mainnet specifications and launch date through our official channels. Developers starting their journey with Sahara are encouraged to begin building on our testnet, as all core functionalities and APIs will remain consistent between testnet and mainnet deployments.

<br>

<br>


# Sahara Protocols

### Abstractions & Metadata

At the heart of [Sahara](https://saharaai.com/) Blockchain's architecture lies a sophisticated system of abstractions that define how AI assets exist and interact on-chain. These abstractions create a standardized framework for representing everything from simple datasets to complex AI pipelines, ensuring consistent handling of ownership, licensing, and revenue distribution.

### Core Abstractions

The Sahara platform implements three fundamental types of abstractions that work together to create a comprehensive system for AI asset management:

Account Abstraction

Every AI asset on Sahara is associated with a dedicated on-chain Account. This Account serves as the asset's digital identity and administrative hub, maintaining crucial relationships between the asset's various components. The Account manages:

* Metadata updates and version history
* Integration with protocol modules like licensing and revenue sharing
* Relationship tracking with other AI assets
* Access control and permissions

### Metadata Abstraction

The metadata abstraction layer ensures comprehensive documentation of every AI asset's properties and lineage. This includes:

* Title and description
* Creation date and version history
* Owner identification
* Technical specifications
* Purpose and intended use cases
* Data characteristics and structure
* Copyright and licensing status
* Collection methodologies
* Creator attributions

### Global Asset Registry

The Global Asset Registry stands at the core of Sahara Blockchain's AI asset management system. It functions as the authoritative source of truth for all AI-related assets on the network, implementing a sophisticated framework for tracking ownership, metadata, and relationships between different AI components. This registry does more than simply catalog assets—it creates a dynamic, interconnected ecosystem where AI development can occur transparently and collaboratively.

### Registration Process

When developers register an AI asset on Sahara Blockchain, they initiate a multi-step process that establishes the asset's identity and governance structure on-chain. The registration process creates three fundamental elements that work together to manage the asset throughout its lifecycle.

First, the registry mints an Ownership NFT that represents absolute control over the asset. This NFT serves as the root-level authority for the asset, functioning similarly to a property deed in traditional systems. Unlike conventional NFTs, these Ownership NFTs carry special privileges within the Sahara ecosystem, enabling the holder to make administrative decisions about the asset's usage, licensing, and future development.

Second, the system creates a comprehensive metadata record that captures every relevant detail about the asset. This metadata serves both technical and administrative purposes, storing everything from basic descriptive information to complex technical specifications. The metadata structure is designed to evolve with the asset, maintaining a clear historical record while accommodating future updates and modifications.

Third, the registry establishes a dedicated on-chain account for the asset. This account acts as the operational center for all interactions involving the asset, managing everything from licensing agreements to revenue distribution. The account structure ensures that all transactions and modifications related to the asset occur within a controlled, auditable environment.

### Metadata Management

The metadata system within the Global Asset Registry implements a flexible yet structured approach to documenting AI assets. Each asset's metadata record contains multiple categories of information:

Core Identification: includes the fundamental details that establish the asset's identity within the ecosystem. This encompasses the asset's title, creation date, and unique identifier. These fields form the basic reference point for all future interactions with the asset.

Technical Documentation: captures the specifications and capabilities of the asset. For models, this might include architecture details, training parameters, and performance metrics. For datasets, it covers data structure, size, and quality metrics. This technical metadata ensures that potential users understand exactly what they're working with.

Ownership and Control: information documents who has authority over the asset and how that authority can be exercised. This section maintains a clear record of ownership transfers and includes any governance parameters that affect how the asset can be managed.

Relationship Mapping: tracks how the asset connects to others within the ecosystem. This becomes particularly important for derivative works, where new models or datasets build upon existing ones. The relationship mapping ensures proper attribution and revenue sharing across the development chain.

### Dynamic AI Assets

The registry's account system provides ongoing management capabilities that extend well beyond initial registration. Through their dedicated accounts, assets can participate in various protocol activities:

* Licensing and Access Control: Asset owners can create and modify licensing terms, controlling how others can use their assets. The account system enforces these terms automatically, ensuring compliance without requiring constant oversight.
* Revenue Distribution: When assets generate value through usage or licensing, the account system manages the automatic distribution of revenues according to predetermined sharing agreements. This ensures that all contributors receive their fair share of generated value.
* Relationship Management: As assets evolve and interact with others in the ecosystem, their accounts maintain clear records of these relationships. This tracking becomes essential for managing derivative works and ensuring proper attribution throughout the development chain.

### Licensing & Permissions&#x20;

The Sahara Blockchain implements a sophisticated licensing system that enables AI asset owners to define, issue, and enforce usage rights through smart contracts. This system brings traditional licensing concepts into the web3 era, creating programmable legal frameworks that automatically enforce terms while enabling flexible monetization strategies.

### License Structure

The licensing protocol builds upon three core components that work together to create a comprehensive rights management system. These components establish clear rules for how AI assets can be used while ensuring automated enforcement of terms and conditions.

First, License Templates provide standardized frameworks that asset owners can use as starting points. These templates cover common licensing scenarios such as commercial usage rights, derivative work permissions, and geographic restrictions. By offering pre-defined templates, we reduce the complexity of creating legally sound licensing agreements while ensuring consistency across the ecosystem.

Second, License Terms transform these templates into specific, immutable rules for individual assets. When an asset owner creates a license, they define exact parameters that govern how their asset can be used. These terms are permanently recorded on-chain, creating an unambiguous record of rights and restrictions.

Third, License Tokens represent active licenses as ERC-721 NFTs. These tokens serve as verifiable proof of rights, containing both the license terms and the technical mechanisms for enforcing them. Each token acts as a digital key, granting its holder specific permissions while maintaining a clear record of usage rights.

### Types and Use Cases

The Sahara licensing system supports several distinct license types, each designed for specific use cases:

Partnership Licenses: facilitate long-term collaborative relationships. These licenses typically implement revenue-sharing models where both the asset owner and licensee benefit from successful utilization of the asset. Terms can be customized to reflect complex business arrangements while maintaining automated enforcement through smart contracts.

API Licenses: manage programmatic access to AI assets. They implement usage-based pricing models where licensees pay per call or computation. These licenses include built-in authentication mechanisms and can automatically track usage metrics for billing purposes.

Full Access: Licenses grant comprehensive rights to the asset through a one-time payment. These licenses might give the holder complete access to model parameters, training data, or other internal components. They're particularly useful for scenarios where deep integration or modification is needed.

Long-term Licenses: provide unlimited usage rights for a fixed time period. These licenses balance the flexibility of full access with temporal restrictions, making them ideal for project-based implementations or trial periods.

### License Administration

Asset owners maintain significant control over their licensing strategy through several administrative functions:

Template Customization: allows owners to modify standard templates to create specialized licensing frameworks that meet their specific needs. While maintaining the basic structure that ensures compatibility with the broader ecosystem, owners can adjust parameters to implement unique business models.

Term Management: enables updating certain license parameters even after issuance, provided such modifications are permitted by the original terms. This flexibility allows licenses to evolve with changing requirements while maintaining the integrity of core agreements.

Usage Monitoring: provides detailed insights into how licensed assets are being utilized. Owners can track usage patterns, monitor compliance, and adjust their licensing strategy based on real-world implementation data.

Through this comprehensive licensing framework, Sahara Blockchain ensures that AI asset owners can effectively manage and monetize their intellectual property while maintaining control over how their assets are used and distributed within the ecosystem.

### Ownership Attribution&#x20;

The Sahara Blockchain implements a sophisticated attribution system that maintains a comprehensive record of relationships between AI assets throughout their development lifecycle. This system ensures transparent provenance tracking, proper credit allocation, and automated enforcement of licensing terms and revenue sharing across complex AI development chains.

#### AI Asset Relationships

At its core, the attribution system uses a series of standardized relationship flags to document how different AI assets connect to and derive from one another. These relationships create a verifiable chain of provenance that maps the evolution of AI assets across the platform.

The TRAINED\_ON relationship serves as the fundamental link between models and their training data. When a developer creates a new AI model, they must specify which datasets were used in the training process. This relationship ensures that dataset creators receive proper attribution and compensation when their data contributes to successful models. For example, if a language model generates revenue through commercial licensing, the creators of its training datasets automatically receive their share based on pre-defined revenue sharing agreements.

The FINETUNED\_FROM relationship tracks the lineage between specialized models and their parent models. This relationship is particularly important in the modern AI landscape, where many valuable models are created by fine-tuning existing base models for specific applications. When a developer fine-tunes a model, the system automatically inherits licensing terms and revenue obligations from the parent model, ensuring that original model creators maintain their rights while enabling innovation.

The DERIVED\_FROM relationship captures broader forms of derivation that go beyond simple fine-tuning. This might include cases where a new model architecture incorporates significant elements from an existing model, or where multiple models are combined to create a new composite system. This relationship ensures that even complex derivation chains maintain clear attribution and proper revenue distribution.

### Automated License and Revenue Management

The attribution system does more than simply record relationships—it actively enforces licensing terms and manages revenue distribution based on these relationships. When a new asset is created, the system automatically:

* Inherits and enforces relevant licensing restrictions from parent assets
* Establishes revenue sharing arrangements based on contribution levels
* Creates an immutable record of the asset's provenance
* Sets up automated distribution of future revenues

This automation ensures that attribution and compensation occur reliably without requiring manual intervention or oversight. For instance, if a fine-tuned model generates revenue through API calls, the system automatically distributes portions of that revenue to the original model creators and dataset providers based on their pre-defined sharing agreements.

### Future-Proofing Ownership Attribution

The attribution system has been designed to accommodate the evolving nature of AI development. Its flexible architecture can handle new types of relationships as novel forms of AI collaboration emerge. The system supports:

* Multiple parallel relationship types between assets
* Complex chains of derivation and influence
* New relationship categories as needed
* Detailed metadata about each relationship

This forward-looking design ensures that the attribution system can continue to provide comprehensive tracking as AI development practices evolve and new forms of collaboration emerge.

Through this sophisticated attribution system, Sahara Blockchain ensures that everyone who contributes to AI development receives proper credit and compensation for their work, while maintaining clear records of how AI assets evolve and relate to each other across the ecosystem.

### Revenue Sharing&#x20;

Sahara Blockchain implements a sophisticated revenue sharing system that ensures fair compensation for all contributors in the AI development chain. This system combines traditional financial concepts with blockchain technology to create transparent, automated revenue distribution across complex networks of AI assets and their creators.

#### Asset Capitalization Structure

The platform uses three distinct instruments to represent different aspects of AI asset ownership and revenue rights:

**Receipts: Establishing Core Ownership**

Receipts serve as the foundational proof of AI asset ownership. These non-transferable, non-fungible tokens establish an immutable record of creation and ownership. Beyond simple proof of ownership, receipts contribute to a reputation system within the Sahara ecosystem.&#x20;

Developers who create high-quality assets build stronger on-chain reputations, leading to increased visibility and opportunities within the ecosystem.

**Shares: Managing Revenue Rights**

Shares represent the right to participate in an asset's revenue stream. These on-chain tokens implement proportional revenue sharing, where holding a percentage of shares entitles the holder to that same percentage of generated revenue. Before asset creation, developers and knowledge providers establish clear parameters for share distribution, ensuring transparent and fair revenue allocation from the start.

**Licenses: Controlling Usage Rights**

Licenses define how others can use and build upon AI assets. Through the licensing system, asset owners can create multiple revenue streams while maintaining control over their intellectual property. License fees flow through the revenue sharing system, ensuring automatic distribution to all stakeholders.

#### Revenue Distribution Framework

The revenue distribution system implements sophisticated mechanisms for managing how value flows through the ecosystem:

**Revenue Policies**

The system supports two primary types of revenue policies:

Fixed Percentage Distribution: creates straightforward revenue sharing arrangements where parent assets receive predetermined portions of all generated revenue. This model provides predictable income streams for original creators and contributors.

Dynamic Percentage Distribution: allows for more complex revenue sharing models that can adjust based on various conditions such as usage volume, time periods, or performance metrics. This flexibility enables sophisticated business models while maintaining automatic enforcement.

**Revenue Flow Management**

Revenue distribution occurs automatically whenever an asset generates income through:

* License sales or renewals
* Usage fees from API calls or compute time
* Direct tips or contributions
* Secondary market transactions

The system carefully tracks these revenue streams and ensures proper distribution according to established policies. For assets with multiple contributors or parent relationships, the distribution follows a carefully calculated waterfall structure that respects all established sharing agreements while preventing over-allocation.

### Execution Layer

The Sahara AI Execution Layer forms the operational backbone of the Sahara platform, providing the critical infrastructure needed to run AI workloads in a decentralized environment. This sophisticated system bridges the gap between on-chain asset management and real-world AI operations, ensuring secure, efficient, and verifiable execution of AI tasks.

#### Core Infrastructure Design

The Execution Layer is built on three fundamental principles that govern its operation and performance characteristics. First, the system maintains expedient processing by coordinating computations across a distributed network of contributors and participants. This coordination ensures that AI workloads are executed with minimal latency while maintaining high reliability.

Second, the infrastructure implements elastic scaling to handle varying computational demands. Through robust autoscaling mechanisms, the system can dynamically adjust its resource allocation in response to changing workload requirements. This elasticity ensures that the platform remains responsive and efficient even during periods of high demand.

Third, the system is designed for resilience, incorporating comprehensive fault tolerance mechanisms. Working in concert with the Sahara Blockchain, the Execution Layer maintains partition tolerance, allowing it to continue operating effectively even when parts of the network experience issues. In the event of failures, the system implements rapid recovery procedures to maintain workflow integrity and minimize service disruptions.

#### API and Model Management

The Execution Layer implements a sophisticated API system that serves as the primary interface between developers and the platform's computational resources. This API manages all aspects of model deployment and execution, providing developers with streamlined access to a growing library of public models including leading open-source options like Llama, Mistral, and Gemma.

Through this API, developers can:

* Browse available models with detailed specifications
* Access comprehensive version histories and performance metrics
* Deploy models with specific resource requirements
* Monitor deployment status and performance metrics
* Manage computational resource allocation

The API maintains high performance through careful optimization:

* Request handling is designed for minimal latency
* The system supports large numbers of concurrent operations
* Resource allocation occurs dynamically based on demand
* Performance metrics are continuously monitored and optimized

#### Smart Contract Integration

The Execution Layer maintains close integration with the Sahara Blockchain through a sophisticated network of smart contracts. These contracts manage the critical interface between on-chain governance and off-chain execution, ensuring that all computational activities maintain proper authorization and record-keeping.

The smart contract system handles several critical functions:

* Processing deployment requests from authorized parties
* Triggering resource allocation for approved operations
* Recording execution results and performance metrics
* Managing access controls and usage permissions
* Maintaining audit trails of all operations

#### Deployment and Execution Management

The Execution Layer implements a comprehensive system for managing AI model deployments and executions. This system operates through three primary components:

The Graph Node infrastructure provides efficient indexing and querying of on-chain data, enabling rapid access to deployment configurations and historical performance data. These nodes maintain synchronized copies of relevant blockchain data, ensuring that execution decisions are based on current information.

The Off-Chain Scheduler manages the complex task of resource allocation, determining how to distribute computational workloads across available resources. This component implements sophisticated scheduling algorithms that consider factors such as:

* Current resource availability
* Performance requirements
* Cost optimization
* Geographic distribution
* Redundancy needs

The core Execution Layer monitors blockchain events and manages the actual deployment and execution of AI workloads. Upon detecting deployment requests, it:

* Validates the request against on-chain permissions
* Allocates appropriate computational resources
* Initializes the required runtime environment
* Monitors execution progress and performance
* Records results and performance metrics on-chain
* Returns deployment confirmation and access details

Through this sophisticated infrastructure, the Execution Layer ensures that Sahara can provide reliable, scalable, and verifiable AI computation while maintaining the decentralized principles core to the platform's mission.

<br>


# Get Started

### Overview

Welcome to the [Sahara](https://saharaai.com/) Blockchain developer quickstart guide. This guide will walk you through setting up your development environment and deploying your first smart contract on the Sahara Testnet.

### Prerequisites

Before starting, ensure you have:

* Node.js v16 or higher
* A code editor (VS Code recommended)
* MetaMask or another Web3 wallet
* Basic Solidity knowledge
* Git installed

### Network Details

The Sahara Testnet is our development environment with the following specifications:

Network Configuration:

```
Network Name: Sahara Testnet
RPC URL: https://testnet.saharalabs.ai
Chain ID: 313313
Currency Symbol: SAHARA
Block Explorer: https://testnet-explorer.saharalabs.ai
```

Chain Specifications:

```
Cosmos Chain ID: sahara-test-1
Ethereum Chain ID: 313313
Native Token: SAHARA
Bech32 Prefix: sah
```

### Step-by-Step Setup

#### 1. Create Project Directory

First, create and initialize your project:

```
mkdir my-sahara-project
cd my-sahara-project
npm init -y

```

#### 2. Install Dependencies

Install Hardhat and required packages:

```
npm install --save-dev hardhat @nomiclabs/hardhat-ethers ethers dotenv
```

#### 3. Configure Hardhat

Create a .env file in your project root:

```
PRIVATE_KEY=your_private_key_here 
SAHARA_TESTNET_API_KEY=your_api_key_here
```

Create hardhat.config.js with the following configuration:

```
require("@nomiclabs/hardhat-ethers");
require("dotenv").config();

const config = {
  solidity: "0.8.24",
  networks: {
    saharaTestnet: {
      chainId: 313313,
      url: "https://testnet.saharalabs.ai",
      accounts: [process.env.PRIVATE_KEY],
      timeout: 60000
    }
  },
  etherscan: {
    apiKey: {
      saharaTestnet: process.env.SAHARA_TESTNET_API_KEY
    },
    customChains: [
      {
        chainId: 313313,
        network: "saharaTestnet",
        urls: {
          apiURL: "https://testnet-explorer.saharalabs.ai/api",
          browserURL: "https://testnet-explorer.saharalabs.ai/"
        }
      }
    ]
  }
};

module.exports = config;
```

#### 4. Create Sample Contract

Create contracts/HelloSahara.sol:

```
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

contract HelloSahara {
    string public message;
   
    constructor(string memory _message) {
        message = _message;
    }
   
    function updateMessage(string memory _newMessage) public {
        message = _newMessage;
    }
}
```

#### 5. Create Deployment Contract

Create scripts/deploy.js:

```
async function main() {
    const HelloSahara = await ethers.getContractFactory("HelloSahara");
    const hello = await HelloSahara.deploy("Hello, Sahara AI!");
    await hello.waitForDeployment();
   
    console.log("HelloSahara deployed to:", await hello.getAddress());

    // Wait for confirmations for verification
    await hello.deploymentTransaction().wait(5);

    // Verify contract
    await hre.run("verify:verify", {
        address: await hello.getAddress(),
        constructorArguments: ["Hello, Sahara AI!"],
    });
}

main()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error(error);
        process.exit(1);
    });
```

#### 6. Get Testnet Tokens

Visit[ https://faucet.saharalabs.ai](https://faucet.saharalabs.ai) and request test SAHARA tokens for deployment.

#### 7. Deploy Contract

Run the deployment script:

```
npx hardhat run scripts/deploy.js --network sahara_testnet
```

### **Common Issues & Solutions**

**Timeout Errors**

```
// Increase timeout in your config
networks: {
  sahara_testnet: {
    timeout: 120000 // 2 minutes
  }
}

```

**Transaction Failures**

* Double-check gas settings
* Ensure proper nonce management
* Verify RPC endpoint status

**Verification Errors**

* Wait for sufficient block confirmations
* Ensure constructor arguments match exactly
* Double-check API key configuration

#### Next Steps

After successful deployment:

1. Interact with your contract through the block explorer
2. Test different contract interactions
3. Begin integrating AI assets using Sahara's specialized features

Need help? Join our[ Discord](https://discord.gg/sahara) or email[ ](https://docs.saharalabs.ai)<support@saharalabs.ai>


# Technical Reference

### Smart Contracts

⚠️ Important Notice: Development Status

These smart contracts are currently under active development and will undergo significant changes. They have not yet been audited and are not ready for production use. The code is shared for transparency and to gather community feedback during our development process.

#### Development Status

These contracts are currently in testnet phase and subject to:

* Ongoing development and architectural changes
* Future security audits
* Potential breaking changes
* Additional feature implementations

#### For Developers

If you're interested in building with these contracts:

1. Use them only for testnet development and experimentation
2. Monitor our GitHub repository for updates and changes
3. Join our developer Discord for technical discussions and support
4. Be aware that mainnet versions may differ significantly

Note: All contract addresses provided are for the Sahara Testnet. Mainnet addresses and final specifications will be published following successful security audits and testing phases.

### Node Types&#x20;

The [Sahara](https://saharaai.com/) Blockchain relies on several specialized types of nodes that work together to maintain network security, process transactions, and handle AI workloads. Each node type serves a specific purpose within our ecosystem.

#### Validator Requirements&#x20;

Validator nodes form the backbone of the Sahara network's security and consensus mechanism. Using our Tendermint-based proof of stake system, validators process transactions, create new blocks, and maintain network integrity.

To operate a validator node, participants must meet specific requirements:

Key Responsibilities:

* Propose and validate new blocks
* Participate in consensus voting
* Maintain network security through staking
* Process and verify transactions
* Ensure network finality

Hardware Specifications:

* CPU: 16+ cores
* RAM: 64GB minimum
* Storage: 4TB NVMe SSD
* Network: 1Gbps dedicated connection

Staking Requirements:

* Minimum Stake: TBD
* Slashing Conditions: Downtime penalties and misbehavior sanctions
* Commission Rate: Between TBD

Validators earn rewards through:

* Block validation rewards
* Transaction fee shares
* Delegation commissions

#### RPC Nodes

RPC nodes serve as the primary interface between applications and the Sahara network. These nodes process API requests and enable developers to interact with the blockchain programmatically.

Key Features:

* Full transaction history synchronization
* WebSocket support for real-time updates
* Query and transaction submission endpoints
* Load balancing and rate limiting capabilities

Standard Endpoints:

```
// Query account balance
GET /api/v1/account/{address}/balance

// Submit transaction
POST /api/v1/transaction/submit

// Get block information
GET /api/v1/block/{height}

// Query AI asset metadata
GET /api/v1/asset/{assetId}
```

Block and Transaction Queries:

```
// Get latest block
GET /api/v1/block/latest
Response: {
    height: number,
    hash: string,
    timestamp: string,
    transactions: Transaction[]
}

// Get transaction status
GET /api/v1/tx/{hash}
Response: {
    status: "success" | "pending" | "failed",
    blockHeight: number,
    gasUsed: number,
    events: Event[]
}
```

### TEE Architecture

The Sahara blockchain utilizes specialized TEE nodes to provide secure and verifiable AI computation. These nodes form a critical component of our execution layer, ensuring that AI workloads are processed with strong privacy guarantees and cryptographic verifiability.

#### Core Components

Our TEE implementation leverages Intel Software Guard Extensions (SGX) technology to create isolated execution environments. Within these secure enclaves, AI workloads run in complete isolation from the host system and other processes, ensuring computational integrity and data privacy.

The TEE node architecture consists of three primary components that work together to provide secure computation services:

* The Attestation Service verifies the authenticity of TEE environments before workload execution begins. This service generates cryptographic proofs that confirm the integrity of both the hardware environment and the code being executed, ensuring that computations occur in genuine, uncompromised TEE environments.
* The Secure Container Runtime manages the execution of AI workloads within the TEE. This specialized runtime handles memory encryption, secure I/O operations, and maintains isolation boundaries throughout the computation process. It ensures that sensitive data and model parameters remain encrypted in memory and are only accessible within the secure enclave.
* The Proof Generation System creates verifiable records of computation execution. These cryptographic proofs allow network participants to verify that computations were performed correctly within a genuine TEE without revealing the actual data or model parameters involved in the computation.

#### Security Features

TEE nodes implement several critical security measures to maintain workload confidentiality and integrity:

* Memory Encryption ensures that all data and computations within the TEE remain encrypted in memory, protecting against both software and hardware-based attacks. Even if an attacker gains physical access to the machine, they cannot access or modify the protected memory regions.
* Remote Attestation enables network participants to verify the authenticity of TEE environments before sending sensitive workloads. This process confirms both the hardware capabilities and the software configuration of the TEE node, ensuring that computations occur in trusted environments.
* Secure Key Management handles the generation and protection of cryptographic keys within the TEE. These keys never leave the secure enclave, providing a robust foundation for encrypted communication and data protection.

#### Integration with Blockchain

TEE nodes maintain continuous communication with the Sahara blockchain through several key interfaces:

* The workload deployment interface processes requests for AI computation, verifying permissions and resource availability before initializing secure execution environments.
* The attestation verification interface allows the blockchain to validate TEE authenticity and computational integrity through our proof generation system.
* The result publication interface securely records computation outcomes and their associated proofs on the blockchain, maintaining a verifiable record of all AI workload executions.

Through this comprehensive architecture, TEE nodes provide the secure computation foundation necessary for privacy-preserving AI development on the Sahara network. They enable developers to deploy sensitive AI workloads with confidence, knowing that their intellectual property and data remain protected throughout the computation process.

<br>


# Sahara Blockchain Validator Guide

This comprehensive guide provides detailed instructions for setting up and operating a validator node on the [Sahara AI](https://saharaai.com/) Blockchain network. Validators play a critical role in securing the network through our Tendermint-based Proof of Stake consensus mechanism.

## Initial Validator Set

The initial validator set for Sahara will comprise professional node operators and established institutions with demonstrated experience in blockchain infrastructure management. This model prioritizes network stability and security during the critical early phases of the network.

Selected validators must meet rigorous criteria including:

* Proven track record in validator operations
* Substantial technical infrastructure and security capabilities
* 24/7 operational monitoring and support
* Geographic distribution for network resilience
* Strong institutional reputation and accountability

### **Role of Validators**

Validators on the Sahara Blockchain are responsible for:

1. Block Production: Proposing new blocks and validating transactions
2. Network Security: Staking SAHARA tokens as collateral for honest operation
3. Transaction Finality: Ensuring rapid and definitive transaction confirmation
4. Network Governance: Participating in on-chain governance decisions

Validators earn rewards for these essential functions while risking their staked tokens through a slashing mechanism that penalizes malicious or negligent behavior.

### **Phased Decentralization Plan**

As the network matures and demonstrates consistent stability, Sahara will implement a phased transition toward a fully permissionless validator set. This gradual approach ensures that decentralization occurs without compromising network security or performance.

#### Phase 1: Professional Node Operators

* Limited set of experienced professional validators
* Focus on network stability and security
* Implementation of monitoring and performance metrics

#### Phase 2: Expanded Participation

* Introduction of additional qualified validators
* Establishment of clear performance requirements
* Development of robust slashing conditions

#### Phase 3: Permissionless Operation

* Open validator participation with stake requirements
* Full implementation of economic security measures
* Community governance of network parameters

This measured approach to validator decentralization aligns with Sahara's vision of creating a robust, decentralized infrastructure for AI development while ensuring the network maintains the highest standards of security and reliability throughout its evolution.

## Validator Requirements

### **Hardware Specifications**

#### Minimum Requirements (Testnet):

* CPU: 8 cores, preferably Intel Xeon or AMD EPYC
* RAM: 32GB
* Storage: 2TB NVMe SSD
* Network: 100Mbps symmetric connection, unlimited data

#### Recommended Production Requirements:

* CPU: 32 cores, Intel Xeon or AMD EPYC
* RAM: 128GB ECC memory
* Storage: 8TB NVMe SSD (RAID configuration recommended)
* Network: 1Gbps symmetric connection, unlimited data
* Backup Power: UPS and redundant power

### **System Requirements**

* Operating System: Ubuntu 22.04 LTS (recommended)
* Docker v24.0.0 or later
* Properly configured firewall
* SSH access restricted to key authentication

### **Staking Requirements**

For the testnet phase, validators need a minimum stake of 1000 SAHARA test tokens.

### Initial Setup

#### Server Preparation

Here we suggest a setup using docker, you can adjust to your preferred method..&#x20;

* Setup a Linux server with docker installed.
* Install the [jq](https://jqlang.org/) command line tool.&#x20;

It’s used by some commands we showed later. It's not required since you can use other alternative commands.

* Pull sahara docker image from \[TBD]

#### Configuration

#### You can get an example configuration from: <https://github.com/SaharaLabsAI/setup-testnet-node> .

#### Configure Your Node

Edit the following files to customize your node configuration

```
# adjust related seetings
```

**chain-data/config/config.toml:**

```
#
moniker = "your-name"
# Set proper external IP (replace with your server's public IP)
external_address = "tcp://<your-public-ip>:26656"

# Configure P2P settings
max_num_inbound_peers = 100
max_num_outbound_peers = 40


# For validators we recommend use state sync to restore application state to the latest state. So the validator node can be up in a short time(1-2hours)
[satesync]
enable = true
rpc_servers = "https://testnet-cos-rpc1.saharalabs.ai,https://testnet-rpc2.saharalabs.ai"
trust_height = # set it to the latest height
trust_hash = "" # the hash could be fetch using cli
# curl https://testnet-cos-rpc1.saharalabs.ai/commit?height={blockHeight} | jq '.result.signed_header.commit.block_id.hash'`
trust_period = "168h0m0s"
```

### Node Operation

#### Start Your Node

```
docker compose up -d 
```

#### Sync Your Node

Monitor the sync status of your node:

```
docker compose logs -f –tail 10 |grep finalize
```

Your node must be fully synced to the latest block before proceeding&#x20;

#### Create Validator

First, create a wallet and obtain testnet tokens:

```
# Create a new wallet key
saharad keys add <your-key-name>

# Or recover an existing wallet
saharad keys add <your-key-name> --recover
```

Visit the Sahara Tesnet Faucet at <https://faucet.saharalabs.ai/> to request test tokens.&#x20;

Once your node is synced and you have test tokens, create your validator:&#x20;

**Prepare the validator-info.jason file:**

```
cat validator-info.json
{
        "pubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"{your validator key}"},
        "amount": "100000000000000000000usah",
        "moniker": "validator-name",
        "identity": "optional identity signature (ex. UPort or Keybase)",
        "website": "validator's (optional) website",
        "security": "validator's (optional) security contact email",
        "details": "validator's (optional) details",
        "commission-rate": "0.1",
        "commission-max-rate": "0.2",
        "commission-max-change-rate": "0.01",
        "min-self-delegation": "100"
}

saharad tx staking create-validator ./validator-info.json --chain-id=sahara-test-1    --gas="auto"  --gas-prices="100000000000usah" --keyring-backend test  --from {your-validator-key-name}


```

#### Verify Your Validator

Check that your validator is active:

```
# View your validator details
saharad query staking validator $(saharad keys show <your-key-name> --bech=val -a)

# Check if your validator is in the active set
saharad query tendermint-validator-set | grep $(saharad tendermint show-validator)
```

### Backup Procedures

It’s recommended to perform disk backup using snapshots. You can also backup the data directory of your node. Please keep in mind the keys folder should be stripped before sending the backup to other parties.

### Upgrade Procedures

When network upgrades are announced, follow these steps:

1. Join the Sahara validator Slack and Discord channels for upgrade announcements
2. Download and compile the new binary before the upgrade height
3. Test the new binary on a testnet node if possible
4. Prepare for the upgrade by backing up your data
5. When the upgrade height is reached, stop your node, replace the binary, and restart

## Security Best Practices

### Server Security

* Keep your node private and only open necessary ports
* Backup your data
* Setup firewall rules to block suspicious connections

### Key Management

Use an HSM or hardware wallet (e.g., Ledger) for managing validator keys in production environments.

For testing environments:

* Keep your mnemonic backup offline and secure
* Use a dedicated machine for key management
* Never share your private keys or mnemonic phrase

### Sentry Node Architecture

For enhanced security on mainnet, implement a sentry node architecture:

1. Set up multiple sentry nodes that connect to the public network
2. Configure your validator to only connect to your sentry nodes
3. Keep your validator node behind a firewall, inaccessible from the public internet

## FAQ

### Q: What is the minimum stake required to become a validator?

A: During the testnet phase, the minimum self-delegation is 1000 SAHARA test tokens. For mainnet, this requirement will be higher and announced before launch.

### Q: How are rewards distributed?

A: Validator rewards are distributed automatically at the end of each block. You can claim your rewards manually using the `saharad tx distribution withdraw-rewards` command.

### Q: What happens if my validator goes offline?

A: If your validator misses a significant number of blocks (currently set at 10,000 blocks, approximately 14 hours), it will be "jailed" and removed from the active set. You’ll need to submit an unjail transaction.

### Q: How can I increase my chances of being selected to produce blocks?

A: Block production opportunities are proportional to your total stake (self-delegated plus delegated tokens). Increasing your stake and maintaining reliable infrastructure improves your chances.

### Q: Can I change my commission rate after creating my validator?

A: Yes, you can adjust your commission rate within the limits specified during validator creation. The `commission-max-change-rate` parameter defines how much you can change it per 24-hour period.

### Q: How do I backup my validator private keys?

A: Your validator consensus key is stored in `~/.sahara/config/priv_validator_key.json.` Back up this file securely. For your operator key (used for transactions), securely store the mnemonic phrase generated when you created the key.

***

For additional support, join our validator community channels on Slack or reach out to the Sahara BD team via the official communication channels.

## Preview: Working with AI Assets&#x20;

⚠️ Important Notice: The following code examples and interfaces are previews of planned functionality for the Sahara Protocol. These contracts are under active development, have not been audited, and are not ready for production use. The final implementation may differ significantly from these examples.

### Overview of AI Asset Management

The Sahara Protocol introduces a comprehensive framework for managing AI assets on-chain. This preview demonstrates how developers will be able to interact with different types of AI assets through our smart contract interfaces and SDK.

#### Asset Types and Registration

The protocol recognizes three fundamental types of AI assets, each with specific metadata requirements and relationship capabilities:

* Datasets represent structured collections of training, validation, or testing data. These form the foundation of AI model development and carry specific metadata about data composition, collection methods, and usage rights.
* Models encompass both base models and their derivatives. The protocol maintains clear lineage between models and their training data, ensuring proper attribution and revenue distribution.
* Pipelines represent complex AI workflows that may combine multiple models and datasets. These assets can capture sophisticated processing chains while maintaining clear provenance.

#### Example: Asset Registration

Here's a preview of how asset registration might work in the protocol:

```
// PREVIEW - Interface subject to change
interface IAIAssetRegistry {
    struct AssetMetadata {
        string name;
        string description;
        AssetType assetType;
        address creator;
        uint256 creationDate;
        bytes32 contentHash;
    }

    function registerAsset(
        AssetMetadata memory metadata
    ) external returns (uint256 assetId);
}
```

#### Example: Relationship Tracking

The protocol will maintain clear relationships between AI assets:

```
// PREVIEW - Interface subject to change
enum RelationType {
    TRAINED_ON,      // Links model to training data
    FINETUNED_FROM,  // Tracks model lineage
    DERIVED_FROM,    // General derivation
    GENERATED_BY     // Links outputs to models
}
```

#### Example: Licensing and Revenue

Preview of the licensing interface:

```
// PREVIEW - Interface subject to change
interface ILicenseManager {
    struct LicenseTerms {
        bool commercialUse;
        bool derivativesAllowed;
        uint256 royaltyRate;
        uint256 duration;
    }

    function createLicense(
        uint256 assetId,
        LicenseTerms memory terms
    ) external returns (uint256 licenseId);
}
```

### Future SDK Integration

The protocol will include a comprehensive SDK for deploying and managing AI assets:

```
// PREVIEW - SDK interface subject to change
const sahara = require('@sahara/sdk');

async function deployModel(modelId, config) {
    const deployment = await sahara.deploy.model({
        modelId: modelId,
        resources: {
            cpu: "4",
            memory: "16Gi",
            gpu: "1"
        },
        scaling: {
            minReplicas: 1,
            maxReplicas: 5
        }
    });
   
    return deployment.endpoint;
}
```

### Next Steps

We encourage developers to:

1. Review these example interfaces to understand our planned functionality
2. Join our Discord to provide feedback on the proposed design
3. Follow our GitHub repository for updates as we move toward testnet release
4. Sign up for our developer newsletter for announcements about preview releases

Remember: These examples represent planned functionality and will evolve significantly before production release. We're sharing them to give developers early insight into how the protocol will work and to gather community feedback during the development process.

<br>


# Resources & Support

### Community & Support

Developer Community\
Join our active developer community to collaborate, share ideas, and get help:

* Discord:[ discord.gg/sahara](https://discord.gg/sahara)
* Developer Forum:[ forum.saharalabs.ai](https://forum.saharalabs.ai)
* GitHub:[ github.com/SaharaLabs](https://github.com/SaharaLabs)

### Technical Support For technical assistance:

* Documentation:[ docs.saharalabs.ai](https://docs.saharalabs.ai)
* Support Email: <support@saharalabs.ai>
* Stack Overflow Tag: \[sahara-blockchain]
* GitHub Issues: For bug reports and feature requests

### Official Channels Stay updated through our official channels:

* Twitter:[ @SaharaLabs](https://twitter.com/SaharaLabs)
* Blog:[ blog.saharalabs.ai](https://blog.saharalabs.ai)
* Newsletter:[ Subscribe for updates](https://saharalabs.ai/newsletter)


# FAQ

**What is Sahara Blockchain?**\
[Sahara](https://saharaai.com/) is a Layer 1 blockchain purpose-built for decentralized AI development. It provides the infrastructure and protocols necessary for managing AI assets, coordinating compute resources, and ensuring fair compensation for AI development contributions.

**How does Sahara's testnet differ from mainnet?**\
The Sahara testnet provides developers with a sandbox environment to experiment with our protocols without using real tokens. While all core functionalities are available on testnet, some features may operate with different parameters than planned for mainnet. The mainnet launch will introduce economic incentives and stricter security requirements.

**What types of AI assets can I manage on Sahara?**\
Sahara supports three primary types of AI assets: datasets for training and validation, models including both base and fine-tuned variants, and pipelines that combine multiple models and datasets into complex workflows. Each asset type has specific metadata requirements and relationship tracking capabilities.

**How do I become a validator?**\
During the initial network phase, validator participation is limited to approved institutional operators who meet strict technical and operational requirements. As the network matures, we will transition to a permissionless validator set through a carefully planned phases. Organizations interested in becoming validators should contact our team through official channels.

**What programming languages and tools are supported?**\
Sahara provides full EVM compatibility, allowing developers to use familiar tools like Solidity, Hardhat, and Web3.js. We also provide specialized SDKs for AI asset management and deployment. All standard Ethereum development tools and practices are supported.

<br>


# Glossary

[AI Asset](/blockchain-developer-docs/overview/quickstart#platform-architecture)\
A digital representation of an AI-related resource (dataset, model, or pipeline) registered on the [Sahara](https://saharaai.com/) blockchain with comprehensive metadata and relationship tracking.

[Asset Registry](/blockchain-developer-docs/overview/quickstart#platform-architecture)\
The on-chain system that maintains authoritative records of all AI assets, their metadata, and relationships.

[License Terms](/blockchain-developer-docs/overview/quickstart#smart-contract-layer-sahara-protocol)\
Immutable rules defining how an AI asset can be used, including commercial permissions, derivative rights, and revenue sharing requirements.

[Ownership NFT](/blockchain-developer-docs/overview/publish-your-docs#ownership-attribution)\
A non-fungible token representing root-level ownership of an AI asset on Sahara.

[Relationship Types](/blockchain-developer-docs/overview/quickstart#platform-architecture)\
Standardized flags (TRAINED\_ON, FINETUNED\_FROM, etc.) that track how AI assets relate to and derive from each other.

[Revenue Vault](/blockchain-developer-docs/overview/quickstart#smart-contract-layer-sahara-protocol)\
A smart contract that collects and distributes revenue generated by an AI asset according to predefined sharing rules.

[TEE (Trusted Execution Environment)](/blockchain-developer-docs/basics/markdown#tee-architecture)\
Secure computing environment used by Sahara's compute nodes to ensure private and verifiable AI workload execution.

[Validator Node](/blockchain-developer-docs/overview/quickstart#platform-architecture)\
Network participants who stake SAHARA tokens and maintain network security through our proof-of-stake consensus mechanism.

<br>


# $SAHARA Tokenomics

### Introduction

$SAHARA is the native utility token that powers all interactions within the [Sahara AI](https://saharaai.com/) ecosystem. It facilitates seamless value exchange between data providers, AI developers, compute suppliers, and end users, creating the economic framework for a [collaborative AI economy.](https://saharalabs.ai/blog/collaborative-ai-economy)

Rooted in our mission of “Your Knowledge. Your AI.”, Sahara AI was built to unlock fair and open access to global knowledge capital. What started as decentralized data collection and labeling has grown into a full-stack ecosystem, with a Data Services Platform, an AI Developer Platform, a decentralized AI Marketplace, and an active global community. And $SAHARA connects it all, supporting everything from data annotation and agent deployment to governance and infrastructure operations.

This collaborative approach stands in stark contrast to the centralized AI development model that currently dominates the industry. Instead, $SAHARA enables a more collaborative ecosystem where innovation comes from everywhere and economic benefits flow to all contributors based on their actual participation and value creation.

### Core Token Utilities of $SAHARA

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

#### 1. AI Asset Access and Licensing

$SAHARA serves as the primary medium of exchange within our ecosystem, enabling users to access or license datasets essential for training AI models, acquire rights to use existing models, and secure computational resources necessary for model development, deployment, and inference. This creates a fluid marketplace where data providers, model developers, and users can efficiently exchange value.

#### 2. Per-Inference Payments

Our granular, usage-based pricing model allows users to pay with $SAHARA for each agent inference they make, enabling precise cost control and new business models. This system ensures AI services remain accessible while fairly compensating agent creators, as well as upstream contributors of those agents, through automatic fee processing and distribution.

#### 3. Network Operations

As the native token of the Sahara blockchain, $SAHARA powers all network operations through gas fees. These fees serve multiple critical functions: preventing network spam and denial-of-service attacks, compensating validators for transaction processing, and maintaining overall network security with a predictable and economically viable fee structure.

#### 4. Validator Staking and Network Security

Our proof-of-stake system requires validators and delegators to stake $SAHARA tokens as collateral, creating strong economic alignment between network security and token holder interests. Validators earn $SAHARA rewards for processing transactions and maintaining consensus, while careful slashing conditions ensure high operational standards.

#### 5. Ecosystem Incentivization

$SAHARA plays a crucial role in bootstrapping the network's utility-driven AI economy. We have allocated $SAHARA to reward high-quality contributions to the ecosystem, including valuable datasets, innovative models, and essential infrastructure development. This utility-driven incentive structure attracts talented developers and researchers while rewarding genuine value creation over speculative activities.

#### 6. Governance and Protocol Decisions

$SAHARA holders have a voice in the platform's future through our on-chain governance system. Token holders can propose and vote on protocol decisions, ensuring that Sahara AI's evolution truly reflects the community's vision and needs.

### Token Distribution

The $SAHARA token distribution schedule reflects our commitment to sustainable ecosystem growth and fair value distribution.

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

### Community-Focused Allocations (64.25%)

The majority of our token supply—over 64%—is dedicated to community growth, ecosystem development, and public participation, reflecting our deep commitment to empowering real users and building a sustainable, collaborative AI economy.

#### Airdrops (8.15%)&#x20;

Allocated to reward early contributors and expand the community, these tokens were distributed through targeted airdrop campaigns designed to reward meaningful participation and support token liquidity across the ecosystem. Airdrops consist of:

* **Knowledge Drop for Early Contributors (5.00%)**: Through our $SAHARA Knowledge Drop, we're recognizing the early contributors who helped bring Sahara AI to life. This includes participants in Data Services Platform who earned Sahara Points, Sahara Legends participants who earned Shards, and ecosystem builders who helped develop foundational infrastructure. [Check your eligibility here.](http://knowledgedrop.saharalabs.ai)
* **Sahara AI x OKX Airdrop (0.40%):** We partnered with OKX for an exclusive airdrop that gave extra rewards to TGE participants and helped expand awareness of Sahara AI across Web3. It introduced Sahara AI to a broader audience while remaining grounded in the support of our early community.
* **Binance HODLer Airdrop (2.75%)**: This campaign rewarded eligible Binance users with a phased airdrop: part unlocked at launch, with more coming at the 6-and 9-month marks. It was structured to enhance broader access while supporting long-term ecosystem liquidity

**Buidlpad Community Distribution (1.42%)**: This campaign rewarded early platform adopters, UGC creators, and core contributors who have helped shape Sahara AI’s community and ecosystem.&#x20;

**Ecosystem Development (33.93%)**: Roughly a third of our supply will fuel ecosystem growth through developer grants, incubation programs, hackathons, validator rewards, liquidity incentives, and ongoing platform development. This investment ensures continuous innovation and adoption.

**Community Incentives (20.75%):** These tokens power future community initiatives including quality dataset contributions, agent development rewards, global ambassador programs, local meetups, and region-specific growth initiatives that expand Sahara AI’s global reach.

### Core Team & Contributors (15.00%)

This allocation is reserved for the core team at Sahara Labs, the builders behind Sahara AI, as well as trusted advisors and early contributors. All allocations are governed by long-term vesting schedules designed to align incentives with the network’s sustained growth and integrity

### Early Backers (19.75%)

This allocation recognizes the early partners who supported Sahara Labs with strategic guidance and capital during its formative stages. Early investors who provided financial and strategic support to Sahara Labs receive this allocation, enabling Their commitment enabled the foundational research, technical development, and early market expansion that made Sahara AI’s vision possible.

### Liquidity & Market Stability (1.00%)

This allocation is reserved for liquidity provisioning across market-making activities on both centralized and decentralized exchanges. This portion aims to enable smoother transactions, improve accessibility tighter spreads, and provide a more seamless experience across the ecosystem.

### $SAHARA Unlock Schedule

The $SAHARA unlock schedule balances immediate utility with long-term ecosystem stability while fostering sustainable, organic growth:

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

**Immediate Utility at TGE:** A portion of tokens unlocks immediately at launch, ensuring the network has sufficient liquidity for core operations and early adopters can begin using the platform right away.&#x20;

**Graduated Release for Long-Term Alignment**: Most allocations follow a structured release schedule with cliff periods and linear unlocks. This phased approach serves multiple strategic purposes:

* Encourage sustained contribution from team members, advisors, and early backers through long-term vesting. These core stakeholders follow a 4-year schedule with a 1-year cliff: 25% unlocks at 12 months, followed by monthly vesting over the next 36 months.
* Ensure that token supply grows in step with actual platform usage, helping to maintain economic balance as the network matures and adoption increases.
* Provide a balanced release for early community contributors through the $SAHARA Knowledge Drop and support phased liquidity through the Binance HODLer Airdrop. This structure ensures contributors can immediately engage with the ecosystem, while giving tokenomics and utility time to be tested, validated, and fully realized. It’s a long-term approach designed to support meaningful participation across the AI economy.

***

### Launching on Ethereum and BNB Chain

**$SAHARA is live on both Ethereum Mainnet and BNB Chain:**

* Ethereum: Robust infrastructure and liquidity
* BNB Chain: Faster and lower-cost transactions

By launching on both chains, Sahara AI follows a proven path used by other leading projects, delivering immediate functionality while preparing for the full capabilities of our own AI-optimized blockchain.

### Conclusion

$SAHARA is the cornerstone of Sahara AI’s mission to build a collaborative, transparent AI economy. With real-world utility, thoughtfully structured incentives, and community-driven governance, $SAHARA supports a system where innovation and rewards are accessible to all.


