# Shio Endpoint

{% hint style="danger" %}
Shio wound down and permanently shut down on 12 May 2026. The Shio Endpoint is no longer active, and the URLs below are kept only for historical reference.
{% endhint %}

## 💧Default Mode

Before shutdown, Default Mode was a neutral and permissionless solution for users and developers to **capture MEV value from their orderflow transactions**. It enabled orderflow originators (including wallets, dApps and others) to participate in the MEV supply chain. By integrating the Shio Endpoint, selective transaction details were shared with searchers, who competed to include these transactions in a soft bundle through an auction process.

RPC URL: `https://rpc.getshio.com/boost`

{% hint style="danger" %}
**No longer in use:** this RPC URL is inactive. Shio permanently shut down on 12 May 2026.
{% endhint %}

## ⚡Fast Mode

Before shutdown, Fast Mode was designed for speed-critical scenarios, allowing users to set a higher gas fee to land their transaction earlier. Fast Mode **maximized the transaction landing speed** and **supported soft bundle submission**.

Shio optimized infrastructure and network quality and minimized processing overhead to ensure transactions reached validators as quickly as possible. To prioritize speed, transactions submitted through Fast Mode were not auctioned.

RPC URL: `https://rpc.getshio.com/fast`

{% hint style="danger" %}
**No longer in use:** this RPC URL is inactive. Shio permanently shut down on 12 May 2026.
{% endhint %}

Learn more: [Fast Mode Integration Guide](#fast-mode-integration-guide)

## Historical Capabilities

The Shio Endpoint provided users and developers with the following features and benefits while the service was live:

**Protect Against Frontrunning:** Shio supported backruns only, helping safeguard users from harmful frontrunning attacks.

**Low Latency:** Shio Endpoint was engineered for ultra-low latency. Using advanced routing, multi-region deployment, and optimized networking techniques, Shio aimed to ensure that soft bundles or transactions reached validators as quickly as possible. Default Mode used an auction window of just 100ms.

**Earn MEV Rewards:** Developers could earn MEV kickbacks, with rewards credited to the specified address. By default, this was the sender's address unless otherwise specified.

**Configurability**: Tailored to support a variety of use cases.

**Resilience:** Built with fail-safe mechanisms, Shio aimed to ensure that transactions were always submitted, even during service downtimes, providing reliability under all conditions.

## Historical Usage

Shio Endpoint supported diverse use cases before shutdown:

### 👨Users

**For wallet users:** While Shio was live, users could switch their default endpoint to the Shio Endpoint Default Mode URL. Using the Shio Endpoint helped protect in-wallet swaps. Typically, this option appeared under **Settings>Network>Custom** or **Setting>Custom RPC**.

**For dApps users**: While Shio was live, users could switch their default endpoint to the Shio Endpoint Default Mode URL above. Some DeFi apps automatically enabled Shio MEV protection. You can view the historical list of supported apps [here](/introduction/defi-integrations.md).

For apps that **did not** enable Shio by default, users could navigate to the app's **Settings > Network > Custom RPC Endpoint** to manually update the endpoint.

### 👨‍💻Developers

Developers could earn MEV rebates for their app and users through Default Mode.<br>

Advanced: Developers could submit in-app bundles to enable more complex workflows. For instance, they could combine a user's add liquidity and swap transaction into a single bundle to prevent sniping. Note: this was only supported in Fast Mode.

### 📱Trading Bots/Apps

Fast Mode gave users an edge during peak demand. It helped avoid congestion controls on hot objects, enabling users to ape into trending tokens without delays.\
\
Apps could earn MEV rebates and prevent MEV sandwiching for normal transactions through Default Mode.<br>

### 💱Market Makers

Fast Mode helped transactions land earlier by setting a higher gas fee while the Shio SDK optimized delivery.

<br>

## Historical Pricing & Rate Limit <a href="#pricing-and-rate-limit" id="pricing-and-rate-limit"></a>

Default Mode:

* Free to use, with MEV kickbacks
* 10 TPS per IP/Sender

Fast Mode:

* No base subscription fee, with a 5% charge on the gas budget for each submitted transaction or bundle
* 20 TPS per IP/Sender

## ⚡Fast Mode Integration Guide

{% hint style="danger" %}
Fast Mode is no longer operational. This guide is kept for historical reference only.
{% endhint %}

When Fast Mode was live, a **tip had to be included**, proportional to the transaction's gas budget (**5%**). For Shio to accept the transaction, users had to add a tip that was >=5% gas budget.

An example transaction can be seen [here](https://suivision.xyz/txblock/6ioMJMm4fg9nciAS3FTkpg7oo44xQmmMeftRHkmSnFHa).

### Fast Mode SDK

Historical setup:

* Add `shio-fast-sdk@0.0.5`to your npm/yarn project.
* Set `https://rpc.getshio.com/fast`as your RPC endpoint. This URL is no longer active.

A full example:

```typescript
import { SuiClient } from '@mysten/sui/client';
import { EstimateFee, ExecuteTransactionBlock, ExecuteBundle, AppendCoinToTip, ShioFastRpcUrl } from "shio-fast-sdk";
import { Transaction } from '@mysten/sui/transactions';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

// Initialize SUI client with Fast Mode endpoint.
// Using other endpoints will result in failure.
const client = new SuiClient({ url: ShioFastRpcUrl });
const keypair = Ed25519Keypair.fromSecretKey(process.env.SUI_PRIVATE_KEY as string);
const address = keypair.getPublicKey().toSuiAddress();

const tx = new Transaction();
// Build your transaction as usual.
// ...
tx.setSender(address);

// You are encouraged to set a higher gasPrice if competitions are foreseen.
tx.setGasPrice(5000);

// Before finishing, call EstimateFee to determine a reasonable gas_budget.
// In order to use this, gasPrice MUST have already been set in the `tx`.
// This is optional - you can also manually set a gas budget then add a tip that is 5% of that budget.
let estimatedFee = await EstimateFee({
  transaction: tx,
  client: client,
});
tx.setGasBudget(estimatedFee.gasBudget);
console.log(estimatedFee);

// Add tip by using help function `AppendCoinToTip`.
// Alternatively, you can also use `AppendBalanceToTip`.
let tipCoins = tx.splitCoins(tx.gas, [estimatedFee.tipAmount]);
AppendCoinToTip(tx, tipCoins[0], estimatedFee.tipAmount);

// Build and sign the transaction.
// We current do not support the use of Executor.
let builtTx = await tx.build({
  client: client,
});
let signed = await keypair.signTransaction(builtTx);

// Execute the transaction with Fast Mode.
let result = await ExecuteTransactionBlock(client, signed, {
  showEffects: true,
});
console.log(result);

// Alternatively, you can submit a Soft Bundle.
// Any transaction may contain a tip call.
// The total tip amount must >= SUM(gas_budget)*0.05.
// The function returns nothing on success so there is no execution result returned.
await ExecuteBundle(client, [signed]);
```

### JSON-RPC Methods

#### shio\_tipPercentage

Returned the tip percentage (in 0-100).

### Limitations

When submitting more than one transaction with ExecuteBundle, Shio internally assembled a [SIP-19](https://github.com/sui-foundation/sips/blob/main/sips/sip-19.md) Soft Bundle, then submitted it to validators. Certain limitations applied:

* Transactions must NOT conflict with each other when locking owned objects. Owned object locks are exclusive, which means if an owned object (such as a gas object) is shared across more than one transaction, the bundle would be rejected.
* All transactions must not have been already submitted or executed by any validator.
* All transactions must have the same gas price.
* All transactions must write to a shared object (use a shared object as input with mutable=true).
* At most 5 transactions could be submitted in a bundle.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.getshio.com/archived-shio-products/shio-endpoint.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
