diff --git a/.cspell.jsonc b/.cspell.jsonc
index 0c06ebf77..791f29b57 100644
--- a/.cspell.jsonc
+++ b/.cspell.jsonc
@@ -114,7 +114,7 @@
},
{
"filename": "content/**/appkit/reference/appkit*.mdx",
- "ignoreWords": ["providerId", "AppkitUIToken"],
+ "ignoreWords": ["providerId", "AppkitUIToken", "LayerswapCryptoOnrampProvider"],
},
{
"filename": "content/**/foundations/whitepapers/overview.mdx",
diff --git a/.gitignore b/.gitignore
index 06f3e3367..e9b400db9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,5 +42,7 @@ next-env.d.ts
/build
*.tsbuildinfo
-# Temporary folders cloned for technical accuracy checks
+# Temporary folders or files for technical accuracy checks
/.ctx
+/AGENTS.md
+/CLAUDE.md
diff --git a/content/api/price.mdx b/content/api/price.mdx
index 863168166..d6a3983e4 100644
--- a/content/api/price.mdx
+++ b/content/api/price.mdx
@@ -7,14 +7,9 @@ Each swap operation, whether between a native asset (Gram) and Jetton or between
## Off-chain API
-The most common use case for the price API is to fetch Jetton info on the web2 backend and use aggregated data inside the service. There are several historical Jetton price providers in TON:
+The most common use case for the price API is to fetch Jetton info on the web2 backend and use aggregated data inside the service. There are [several](https://www.coingecko.com/en/api/ton) [historical](https://dyor.io/tonapi) Jetton price providers in TON.
-- [CoinGecko](https://www.coingecko.com/en/api/ton)
-- [Dyor.io](https://dyor.io/tonapi)
-
-You can find detailed information about API usage and technical details in the provider docs.
-
-There is no established solution for real-time jetton swap market data; however, one can explore [CoinGecko websocket API](https://docs.coingecko.com/websocket).
+There is no established solution for real-time jetton swap market data; however, one can explore [this websocket API](https://docs.coingecko.com/websocket).
## On-chain API
@@ -24,16 +19,19 @@ Currently, it is not possible to retrieve **historical** jetton prices on-chain
Since the TON [execution model is asynchronous](/from-ethereum#execution-model), the jetton price might change between the moment of the response from the price provider and the moment the contract processes the response. Consider this factor in smart contract logic.
-For example, on the [DeDust](https://dedust.io) DEX, it is possible to retrieve pool information on-chain using an internal message with the following [TL-B](/foundations/tlb/overview) schema:
+For example, on a [popular DEX](https://dedust.io), it is possible to retrieve pool information on-chain using an internal message with the following [TL-B](/foundations/tlb/overview) schema:
```tlb
provide_pool_state#6e24728d query_id:uint64 include_assets:Bool = InMsgBody;
take_pool_state#bddd4954 query_id:uint64 reserve0:Coins reserve1:Coins total_supply:Coins
assets:(Maybe ^[ asset0:Asset asset1:Asset ]) = InMsgBody;
+
+# See:
+# https://hub.dedust.io/contracts/v2/reference/core/pool#operation-provide_pool_stat
```
-Here is a smart contract snippet in [Tolk](/tolk/overview) illustrating how you can send the 'provide' message:
+Here is a smart contract snippet in [Tolk](/tolk/overview) illustrating how one can send the `provide_pool_state` message:
```tolk title="Tolk"
struct (0x6e24728d) ProvideDeDustPool {
diff --git a/content/applications/appkit/get-started/providers.mdx b/content/applications/appkit/get-started/providers.mdx
index 3eebaf9ec..825abec48 100644
--- a/content/applications/appkit/get-started/providers.mdx
+++ b/content/applications/appkit/get-started/providers.mdx
@@ -28,7 +28,7 @@ export const appKit = new AppKit({
});
```
-Omniston requires its own SDK package — install it before registering the provider:
+Some providers require their own SDK package — install it before registering the provider:
```bash
npm i @ston-fi/omniston-sdk
@@ -36,7 +36,7 @@ npm i @ston-fi/omniston-sdk
## Add a staking provider
-Use `createTonstakersProvider({})` from `@ton/appkit/staking/tonstakers` the same way:
+Use the provider from `@ton/appkit/staking/tonstakers` the same way:
```ts
import { AppKit } from '@ton/appkit';
diff --git a/content/applications/appkit/howto/providers.mdx b/content/applications/appkit/howto/providers.mdx
index 78d897e44..570b76185 100644
--- a/content/applications/appkit/howto/providers.mdx
+++ b/content/applications/appkit/howto/providers.mdx
@@ -20,7 +20,7 @@ A provider is not a wallet and not a connector. The wallet still signs every tra
## Swaps
-A swap provider integrates a DEX or aggregator. It returns a **quote** for a route (input asset, output asset, amount, fees, and execution assumptions), then builds a `TransactionRequest` when the user accepts the quote. AppKit does not price markets itself; `SwapManager` coordinates the registered providers. Bundled options include Omniston and DeDust. See [Perform swaps](/applications/appkit/howto/swaps) for the full quote-then-build flow.
+A swap provider integrates a DEX or aggregator. It returns a **quote** for a route (input asset, output asset, amount, fees, and execution assumptions), then builds a `TransactionRequest` when the user accepts the quote. AppKit does not price markets itself; `SwapManager` coordinates the registered providers. Bundled options include popular DEX platforms. See [Perform swaps](/applications/appkit/howto/swaps) for the full quote-then-build flow.
## Staking
@@ -28,13 +28,13 @@ A staking provider quotes a stake or unstake intent for a specific pool or proto
Liquid-staking positions may appear in the wallet as derivative balances, such as tsTON. AppKit exposes pool metadata and APY as provider-supplied **display data**, not a guarantee of future yield or redemption timing.
-Unstake mechanics — instant, delayed, or round-end — are provider-specific. The bundled staking provider is Tonstakers. See [Stake and unstake](/applications/appkit/howto/staking) for the full flow.
+Unstake mechanics — instant, delayed, or round-end — are provider-specific. See [Stake and unstake](/applications/appkit/howto/staking) for the full flow.
## How they are registered
Provider setup uses three registration paths. **API clients** are bound to a network through the `networks` field of `AppKitConfig`. **Streaming providers** are also network-specific and are registered directly on `appKit.streamingManager`. **Swap** and **staking** providers are network-aware DeFi providers: pass them in `providers` at construction or register them later with `registerProvider`. Each DeFi provider declares its `type` so AppKit can route it to the correct manager.
-Omniston requires its own SDK package — install it before registering the provider:
+Some providers require their own SDK package — install it before registering the provider:
```bash
npm i @ston-fi/omniston-sdk
@@ -60,7 +60,7 @@ const appKit = new AppKit({
registerProvider(appKit, createTonstakersProvider());
```
-When a network entry does not provide a custom API client, AppKit creates a TON Center client for that network. TON Center streaming provider is available through WalletKit and can be registered on `appKit.streamingManager`. Omniston and DeDust are available as swap providers, and Tonstakers is available as a staking provider. Custom DeFi backends can use the same `registerProvider` path by implementing the swap or staking interface.
+When a network entry does not provide a custom API client, AppKit creates a TON Center client for that network. TON Center streaming provider is available through WalletKit and can be registered on `appKit.streamingManager`. Custom DeFi backends can use the same `registerProvider` path by implementing the swap or staking interface.
`registerProvider` returns `void`. To replace a provider, call `registerProvider` again with the same `providerId` — the registry entry is overwritten. If the previous provider owns resources you need to clean up, hold the reference and dispose of it yourself before re-registering.
diff --git a/content/applications/appkit/howto/staking.mdx b/content/applications/appkit/howto/staking.mdx
index 72cd1b67d..6dfbecb6b 100644
--- a/content/applications/appkit/howto/staking.mdx
+++ b/content/applications/appkit/howto/staking.mdx
@@ -9,11 +9,11 @@ Quote a stake or unstake, build the transaction, and send it through the connect
The `StakingManager` routes each quote call and each build call to a single registered staking provider — by default the first one you registered, or the one you pass as `providerId`. `setDefaultProvider` on the manager overrides the default; an unknown `providerId` throws. A quote describes the intent (`direction: 'stake' | 'unstake'`, `amount`, optional `unstakeMode`), and `useBuildStakeTransaction` turns an accepted quote into a `TransactionRequest`.
-The protocol shape — derivative jetton, unstake modes, settlement timing, pool model — is provider-specific. Tonstakers, the bundled provider, issues `tsTON` and supports `INSTANT`, `WHEN_AVAILABLE`, and `ROUND_END` unstake modes. Read the user's staked-token balance with `useStakedBalance`, or query the jetton balance directly. `apy` and `instantUnstakeAvailable` from `useStakingProviderInfo` are provider-supplied display data, not guarantees of future yield or withdrawal timing.
+The protocol shape — derivative jetton, unstake modes, settlement timing, pool model — is provider-specific. The bundled provider issues `tsTON` and supports `INSTANT`, `WHEN_AVAILABLE`, and `ROUND_END` unstake modes. Read the user's staked-token balance with `useStakedBalance`, or query the jetton balance directly. `apy` and `instantUnstakeAvailable` from `useStakingProviderInfo` are provider-supplied display data, not guarantees of future yield or withdrawal timing.
## Before you begin
-You need a connected wallet and a staking provider registered on the AppKit instance. Tonstakers ships bundled — see [Use providers → How they are registered](/applications/appkit/howto/providers#how-they-are-registered).
+You need a connected wallet and a staking provider registered on the AppKit instance. Some popular staking providers are bundled — see [Use providers → How they are registered](/applications/appkit/howto/providers#how-they-are-registered).
## Hooks
diff --git a/content/applications/appkit/howto/swaps.mdx b/content/applications/appkit/howto/swaps.mdx
index b3a361af0..96abf019a 100644
--- a/content/applications/appkit/howto/swaps.mdx
+++ b/content/applications/appkit/howto/swaps.mdx
@@ -13,7 +13,7 @@ The quote is provider-supplied data and can expire. Refresh it close to the mome
## Before you begin
-You need a connected wallet and at least one swap provider registered on the AppKit instance. Omniston and DeDust ship bundled — see [Use providers → How they are registered](/applications/appkit/howto/providers#how-they-are-registered).
+You need a connected wallet and at least one swap provider registered on the AppKit instance. Some popular swap providers are bundled — see [Use providers → How they are registered](/applications/appkit/howto/providers#how-they-are-registered).
## Hooks
diff --git a/content/applications/appkit/howto/use-ui-widgets.mdx b/content/applications/appkit/howto/use-ui-widgets.mdx
index 694011143..f90f0c4ec 100644
--- a/content/applications/appkit/howto/use-ui-widgets.mdx
+++ b/content/applications/appkit/howto/use-ui-widgets.mdx
@@ -180,7 +180,7 @@ The required prop is `tokens`. `defaultFromSymbol`, `defaultToSymbol`, `defaultS
## Staking widget
-`` is the complete staking UI: stake/unstake tabs, amount input, balance readout, current APY, exchange rate, and provider. The widget reads the registered staking provider (Tonstakers ships bundled — see [Use providers → How they are registered](/applications/appkit/howto/providers#how-they-are-registered)) and handles quote, build, and the wallet call internally.
+`` is the complete staking UI: stake/unstake tabs, amount input, balance readout, current APY, exchange rate, and provider. The widget reads the [registered staking provider](/applications/appkit/howto/providers#how-they-are-registered) and handles quote, build, and the wallet call internally.
```tsx
import { StakingWidget } from '@ton/appkit-react';
diff --git a/content/applications/appkit/overview.mdx b/content/applications/appkit/overview.mdx
index 7b632d3df..9a0a7f2f4 100644
--- a/content/applications/appkit/overview.mdx
+++ b/content/applications/appkit/overview.mdx
@@ -60,9 +60,9 @@ AppKit builds on top of the following components:
| `@ton/appkit/queries` | Query and mutation helpers for data fetching |
| `@ton/appkit-react` | React provider, hooks, components, and core re-exports |
| `@ton/appkit-react/styles.css` | Default component styles |
-| `@ton/appkit/swap/omniston` | Omniston swap provider |
-| `@ton/appkit/swap/dedust` | DeDust swap provider |
-| `@ton/appkit/staking/tonstakers` | Tonstakers staking provider |
+| `@ton/appkit/swap/omniston` | Swap provider |
+| `@ton/appkit/swap/dedust` | Swap provider |
+| `@ton/appkit/staking/tonstakers` | Staking provider |
## Examples
diff --git a/content/applications/appkit/reference/appkit-react.mdx b/content/applications/appkit/reference/appkit-react.mdx
index d888b581a..146f6290b 100644
--- a/content/applications/appkit/reference/appkit-react.mdx
+++ b/content/applications/appkit/reference/appkit-react.mdx
@@ -1167,7 +1167,7 @@ Drop-in widget for buying TON-side tokens with a crypto payment from another cha
```tsx
// Uses built-in defaults for tokens, payment methods and chain display info.
-// Make sure a crypto-onramp provider (Layerswap / swaps.xyz) is registered on AppKit.
+// Make sure a crypto-onramp provider is registered in AppKit.
return ;
```
@@ -1758,7 +1758,7 @@ Drop-in swap UI that walks the user through picking the source/target tokens, en
**Example**
```tsx
-// Make sure a swap provider (e.g. DeDust / Omniston) is registered on AppKit.
+// Make sure a swap provider is registered in AppKit.
return ;
```
diff --git a/content/applications/appkit/reference/appkit.mdx b/content/applications/appkit/reference/appkit.mdx
index 9567a1350..37461def5 100644
--- a/content/applications/appkit/reference/appkit.mdx
+++ b/content/applications/appkit/reference/appkit.mdx
@@ -186,7 +186,7 @@ Returns: [`ConnectorFactory`](#connectorfactory) — The same factory, typed as
#### `createTonConnectConnector`
-Build a TonConnect-backed [`Connector`](#connector) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `connectors` or [`addConnector`](#addconnector).
+Build a TON Connect-backed [`Connector`](#connector) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `connectors` or [`addConnector`](#addconnector).
| Parameter | Type | Description |
| -------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -352,7 +352,7 @@ Returns: [`CreateCryptoOnrampDepositReturnType`](#createcryptoonrampdepositretur
#### `createLayerswapProvider`
-Build a Layerswap-backed [`CryptoOnrampProvider`](#cryptoonrampprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
+Build a [`CryptoOnrampProvider`](#cryptoonrampprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
| Parameter | Type | Description |
| --------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
@@ -362,7 +362,7 @@ Returns: ProviderFactory\<Layersw
#### `createDecentProvider`
-Build a Decent-backed [`CryptoOnrampProvider`](#cryptoonrampprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
+Build a [`CryptoOnrampProvider`](#cryptoonrampprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
| Parameter | Type | Description |
| ---------- | ------------------------------------------------- | -------------------------------------------------------------------------------- |
@@ -1104,7 +1104,7 @@ console.log('Stake Transaction:', txRequest);
#### `createTonstakersProvider`
-Build a Tonstakers-backed [`StakingProvider`](#stakingprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
+Build a [`StakingProvider`](#stakingprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
| Parameter | Type | Description |
| --------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
@@ -1304,7 +1304,7 @@ console.log('Swap Transaction:', transactionResponse);
#### `createDeDustProvider`
-Build a DeDust-backed [`SwapProvider`](#swapprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
+Build a [`SwapProvider`](#swapprovider) for AppKit. Pass the result to [`AppKitConfig`](#appkitconfig)'s `providers` or [`registerProvider`](#registerprovider).
| Parameter | Type | Description |
| --------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
@@ -1314,7 +1314,7 @@ Returns: (ctx: ProviderFactoryContext;
Configuration accepted by [`createLayerswapProvider`](#createlayerswapprovider).
-| Field | Type | Description |
-| -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `apiKey` | `string` | Optional API key. Forwarded as `X-LS-APIKEY` when provided. |
-| `apiUrl` | `string` | Override the base API URL. Defaults to `https://api.layerswap.io/api/v2` (see [Layerswap API V2](https://api.layerswap.io/swagger/index.html). |
+| Field | Type | Description |
+| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
+| `apiKey` | `string` | Optional API key. Forwarded as `X-LS-APIKEY` when provided. |
+| `apiUrl` | `string` | Override the base API URL. Defaults to `https://api.layerswap.io/api/v2` (see [respective API V2](https://api.layerswap.io/swagger/index.html). |
#### `LayerswapQuoteMetadata`
-Provider-specific metadata returned on a [`CryptoOnrampQuote`](#cryptoonrampquote)'s `metadata` from Layerswap — carries the swap ID and deposit action that [`createCryptoOnrampDeposit`](#createcryptoonrampdeposit) reads to build the deposit.
+Provider-specific metadata returned on a [`CryptoOnrampQuote`](#cryptoonrampquote)'s `metadata` — carries the swap ID and deposit action that [`createCryptoOnrampDeposit`](#createcryptoonrampdeposit) reads to build the deposit.
-| Field | Type | Description |
-| ------------------------- | -------- | ------------------------------------------------------------------------------------ |
-| `swapId`\* | `string` | Layerswap swap ID created at quote time and reused by `createDeposit` / `getStatus`. |
-| `depositAddress`\* | `string` | Pre-computed deposit address on the source chain that the user must send funds to. |
-| `sourceAmountBaseUnits`\* | `string` | Source-chain amount the user must send, in raw base units (e.g., wei). |
-| `targetAmountBaseUnits`\* | `string` | Target-chain amount the user receives, in raw base units (e.g., nanograms). |
+| Field | Type | Description |
+| ------------------------- | -------- | ---------------------------------------------------------------------------------- |
+| `swapId`\* | `string` | Swap ID created at quote time and reused by `createDeposit` / `getStatus`. |
+| `depositAddress`\* | `string` | Pre-computed deposit address on the source chain that the user must send funds to. |
+| `sourceAmountBaseUnits`\* | `string` | Source-chain amount the user must send, in raw base units (e.g., wei). |
+| `targetAmountBaseUnits`\* | `string` | Target-chain amount the user receives, in raw base units (e.g., nanograms). |
#### `DecentProviderConfig`
@@ -3726,7 +3726,7 @@ Static metadata for a staking provider.
| Field | Type | Description |
| ------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
-| `name`\* | `string` | Human-readable provider name (e.g. "Tonstakers") |
+| `name`\* | `string` | Human-readable provider name |
| `supportedUnstakeModes`\* | UnstakeModes\[] | Supported unstake modes for this provider. |
| `supportsReversedQuote`\* | `boolean` | Whether provider supports reversed quote format (e.g., passing GRAM instead of tsTON for unstake) |
| `stakeToken`\* | [`StakingTokenInfo`](#stakingtokeninfo) | Token that the user sends when staking (e.g. GRAM) |
@@ -3796,12 +3796,12 @@ Display metadata for a staking-pool token — `ticker`, `decimals` and `address`
#### `TonStakersChainConfig`
-Per-chain Tonstakers config — optional API key for APY reads and an optional staking-provider metadata override.
+Per-chain config — optional API key for APY reads and an optional staking-provider metadata override.
-| Field | Type | Description |
-| ------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `tonApiToken` | `string` | A key used for APY reads. Optional — APY still works without it, but providing one is recommended when you already use the API elsewhere. |
-| `metadata` | [`StakingProviderMetadataOverride`](#stakingprovidermetadataoverride) | Optional [`StakingProviderMetadataOverride`](#stakingprovidermetadataoverride) applied on top of the built-in Tonstakers metadata for this chain. |
+| Field | Type | Description |
+| ------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| `tonApiToken` | `string` | A key used for APY reads. Optional — APY still works without it, but providing one is recommended when you already use the API elsewhere. |
+| `metadata` | [`StakingProviderMetadataOverride`](#stakingprovidermetadataoverride) | Optional [`StakingProviderMetadataOverride`](#stakingprovidermetadataoverride) applied on top of the built-in metadata for this chain. |
#### `TonStakersProviderConfig`
@@ -3857,7 +3857,7 @@ type BuildSwapTransactionReturnType = Promise;
#### `DeDustProviderOptions`
-DeDust-specific options forwarded through `providerOptions` on [`SwapQuoteParams`](#swapquoteparams) / [`SwapParams`](#swapparams).
+Options forwarded through `providerOptions` on [`SwapQuoteParams`](#swapquoteparams) / [`SwapParams`](#swapparams).
| Field | Type | Description |
| ---------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
@@ -3872,7 +3872,7 @@ DeDust-specific options forwarded through `providerOptions` on [`SwapQuoteParams
#### `DeDustQuoteMetadata`
-Provider-specific metadata returned on a [`SwapQuote`](#swapquote)'s `metadata` from DeDust — carries the resolved route, fees and `swapData` payload that [`buildSwapTransaction`](#buildswaptransaction) needs.
+Provider-specific metadata returned on a [`SwapQuote`](#swapquote)'s `metadata` — carries the resolved route, fees and `swapData` payload that [`buildSwapTransaction`](#buildswaptransaction) needs.
| Field | Type | Description |
| ----------------- | --------------------- | ------------------------------------------- |
@@ -3881,7 +3881,7 @@ Provider-specific metadata returned on a [`SwapQuote`](#swapquote)'s `metadata`
#### `DeDustReferralOptions`
-Optional referral metadata attached to DeDust swaps so the provider can attribute them.
+Optional referral metadata attached to swaps so the provider can attribute them.
| Field | Type | Description |
| ----------------- | -------- | ------------------------------------------- |
@@ -3963,7 +3963,7 @@ type GetSwapQuoteReturnType = Promise;
#### `OmnistonProviderOptions`
-Omniston-specific options forwarded through `providerOptions` on [`SwapQuoteParams`](#swapquoteparams) / [`SwapParams`](#swapparams).
+Options forwarded through `providerOptions` on [`SwapQuoteParams`](#swapquoteparams) / [`SwapParams`](#swapparams).
| Field | Type | Description |
| --------------------- | ------------------------- | --------------------------------------------- |
@@ -3974,15 +3974,15 @@ Omniston-specific options forwarded through `providerOptions` on [`SwapQuotePara
#### `OmnistonQuoteMetadata`
-Provider-specific metadata returned on a [`SwapQuote`](#swapquote)'s `metadata` from Omniston — carries the resolved route and signed quote payload that [`buildSwapTransaction`](#buildswaptransaction) needs.
+Provider-specific metadata returned on a [`SwapQuote`](#swapquote)'s `metadata` — carries the resolved route and signed quote payload that [`buildSwapTransaction`](#buildswaptransaction) needs.
-| Field | Type | Description |
-| ----------------- | ------- | -------------------------------- |
-| `omnistonQuote`\* | `Quote` | The actual Omniston quote object |
+| Field | Type | Description |
+| ----------------- | ------- | ----------------------- |
+| `omnistonQuote`\* | `Quote` | The actual quote object |
#### `OmnistonReferrerOptions`
-Optional referrer metadata attached to Omniston swaps so the provider can attribute them.
+Optional referrer metadata attached to swaps so the provider can attribute them.
| Field | Type | Description |
| --------------------- | --------- | --------------------------------------------- |
@@ -3996,7 +3996,7 @@ Configuration accepted by [`createOmnistonProvider`](#createomnistonprovider).
| Field | Type | Description |
| --------------------- | ------------------------------ | ----------------------------------------------------------- |
-| `apiUrl` | `string` | Optional URL for the Omniston API |
+| `apiUrl` | `string` | Optional URL for the given API |
| `defaultSlippageBps` | `number` | Default slippage tolerance in basis points (1 `bp` = 0.01%) |
| `quoteTimeoutMs` | `number` | Timeout for quote requests in milliseconds |
| `providerId` | `string` | Identifier for the provider. |
diff --git a/content/applications/ton-connect/core-concepts.mdx b/content/applications/ton-connect/core-concepts.mdx
index dc9843edd..fe623b69a 100644
--- a/content/applications/ton-connect/core-concepts.mdx
+++ b/content/applications/ton-connect/core-concepts.mdx
@@ -200,7 +200,7 @@ The SDK fetches [`wallets-v2.json`](https://config.ton.org/wallets-v2.json) at r
Each entry carries identity and branding (`app_name`, `name`, `image`, `about_url`), one or two bridge transports (`sse` URL and/or `js` key), link forms (`universal_url`, `deepLink`), the `platforms` it runs on, and `features` it supports.
-For example, MyTonWallet:
+For example:
```json
{
diff --git a/content/applications/ton-pay/on-ramp.mdx b/content/applications/ton-pay/on-ramp.mdx
index 1dbd0bc36..869020523 100644
--- a/content/applications/ton-pay/on-ramp.mdx
+++ b/content/applications/ton-pay/on-ramp.mdx
@@ -7,7 +7,7 @@ sidebarTitle: "On-ramp"
TON Pay uses the previous, now deprecated currency name instead of Gram/GRAM.
-The TON Pay SDK includes a built-in fiat-to-crypto on-ramp powered by [MoonPay](https://www.moonpay.com/). It allows users to top up their wallets with a bank card directly from the payment modal.
+The TON Pay SDK includes a built-in [fiat-to-crypto on-ramp](https://www.moonpay.com/). It allows users to top up their wallets with a bank card directly from the payment modal.
## How it works
@@ -16,7 +16,7 @@ When a user opens the payment modal and the connected wallet balance is insuffic
1. Balance check. The SDK verifies whether the connected wallet has funds to complete the payment.
1. Geographic and limit check. The SDK verifies that card purchases are supported in the user's region and retrieves the provider's minimum and maximum purchase limits.
1. Amount calculation. The SDK computes the required top-up amount, clamped to the provider's minimum.
-1. Widget rendering. The MoonPay purchase widget loads in an iframe. The purchase transfers funds directly to the user's wallet.
+1. Widget rendering. The purchase widget loads in an iframe. The purchase transfers funds directly to the user's wallet.
1. Balance polling. After the provider reports transaction completion, the SDK polls the wallet balance every 5 seconds.
1. Auto-pay. Once the wallet balance becomes sufficient, the SDK displays a modal to complete the merchant payment.
@@ -50,13 +50,13 @@ The SDK supports the following assets for on-ramp top-ups:
## Geographic restrictions
-Before displaying the card top-up option, the SDK checks the user's geographic eligibility with the MoonPay provider. If card purchases are not supported in the user's country, the option is not displayed.
+Before displaying the card top-up option, the SDK checks the user's geographic eligibility with the on-ramp provider. If card purchases are not supported in the user's country, the option is not displayed.
The SDK performs this check using the user's IP address. If the integration proxies requests or omits the original client IP address, provide the user's IP explicitly using the `userIp` prop.
## Purchase limits
-The SDK retrieves minimum and maximum purchase limits from MoonPay for the target asset. These limits are enforced automatically:
+The SDK retrieves minimum and maximum purchase limits for the target asset. These limits are enforced automatically:
- If the calculated top-up amount is below the minimum, the SDK increases it to `minAmount * 1.05`.
- The provider determines the maximum purchase amount; this cannot be overridden.
@@ -74,12 +74,12 @@ Limits use the quote currency returned by the provider, e.g., USD, and vary by r
The on-ramp widget communicates through `postMessage`. The SDK handles the following events internally:
-| Event | Description |
-| :------------------------------------------------ | :-------------------------------------------------------------------------------------- |
-| `TONPAY_IFRAME_LOADED` | The on-ramp widget loaded successfully. |
-| `TONPAY_MOONPAY_EVENT` (`onTransactionCompleted`) | The MoonPay purchase completes successfully. The SDK starts polling the wallet balance. |
-| `TONPAY_MOONPAY_EVENT` (`onTransactionFailed`) | The MoonPay purchase failed. The user may retry the transaction. |
-| `TONPAY_PAYMENT_ERROR` | On-ramp widget initialization error; e.g., the link expired. |
+| Event | Description |
+| :------------------------------------------------ | :------------------------------------------------------------------------------ |
+| `TONPAY_IFRAME_LOADED` | The on-ramp widget loaded successfully. |
+| `TONPAY_MOONPAY_EVENT` (`onTransactionCompleted`) | The purchase completes successfully. The SDK starts polling the wallet balance. |
+| `TONPAY_MOONPAY_EVENT` (`onTransactionFailed`) | The purchase failed. The user may retry the transaction. |
+| `TONPAY_PAYMENT_ERROR` | On-ramp widget initialization error; e.g., the link expired. |
Merchants using `TonPayButton` do not need to handle these events manually.
@@ -87,7 +87,7 @@ Merchants using `TonPayButton` do not need to handle these events manually.
type="note"
title="Processing times and fees"
>
- MoonPay purchases require on-chain confirmation and are not processed immediately. The SDK monitors the transaction status through automatic balance polling.
+ Purchases require on-chain confirmation and are not processed immediately. The SDK monitors the transaction status through automatic balance polling.
- The SDK adds a 5% buffer to top-up amounts to account for MoonPay fees and price fluctuations.
+ The SDK adds a 5% buffer to top-up amounts to account for fees and price fluctuations.
diff --git a/content/applications/ton-pay/payment-integration/transfer.mdx b/content/applications/ton-pay/payment-integration/transfer.mdx
index fc0ff06ad..638b906e0 100644
--- a/content/applications/ton-pay/payment-integration/transfer.mdx
+++ b/content/applications/ton-pay/payment-integration/transfer.mdx
@@ -369,7 +369,7 @@ const result = await createTonPayTransfer(
#### Obtain testnet GRAM
- - Use testnet wallet account: [MyTonWallet](https://mytonwallet.org/) or other TON wallets.
+ - Set up testnet wallet account in [wallet.ton.org](/onboarding/wallet-apps/web) or other TON wallets.
- [Get testnet GRAM](/onboarding/wallet-apps/get-coins) from a faucet to test transactions.
@@ -425,14 +425,12 @@ const { message, reference, bodyBase64Hash } = await createTonPayTransfer(
### Verify testnet transactions
-Verify testnet transactions using testnet block [explorers](/onboarding/explorers/overview):
-
-- [Testnet Tonscan](https://testnet.tonscan.org/)
+Verify testnet transactions using testnet block [explorers](/onboarding/explorers):
```typescript
// Replace txHash with the actual transaction hash.
// After transaction completes:
-console.log(`View on explorer: https://testnet.tonscan.org/tx/${txHash}`);
+console.log(`View in explorer, e.g., https://testnet.tonscan.org/tx/${txHash}`);
```
### Apply testing best practices
diff --git a/content/applications/walletkit/deep/qa-guide.mdx b/content/applications/walletkit/deep/qa-guide.mdx
index baab36260..bbda13f84 100644
--- a/content/applications/walletkit/deep/qa-guide.mdx
+++ b/content/applications/walletkit/deep/qa-guide.mdx
@@ -62,7 +62,7 @@ Before building your integration, experience TON Connect as a user to understand
### Try these wallets first
-Use [MyTonWallet](https://mytonwallet.io/) or other TON wallet to experience TON Connect. Both support mobile, desktop, and browser extensions.
+Use [wallet.ton.org](/onboarding/wallet-apps/web) or other TON wallet to experience TON Connect. Both support mobile, desktop, and browser extensions.
[Wallet in Telegram](https://t.me/wallet) demonstrates the UX for wallets implemented as Telegram Mini Apps.
diff --git a/content/applications/walletkit/overview.mdx b/content/applications/walletkit/overview.mdx
index 92b00895a..d768532b1 100644
--- a/content/applications/walletkit/overview.mdx
+++ b/content/applications/walletkit/overview.mdx
@@ -38,9 +38,9 @@ WalletKit provides the following features:
| ----------------------------------- | ------------------------------------------------------------- |
| `@ton/walletkit` | Core wallet primitives: key management, accounts, TON Connect |
| `@ton/walletkit/bridge ` | JS Bridge injector for in-app browsers |
-| `@ton/walletkit/swap/omniston` | Omniston swap integration |
-| `@ton/walletkit/swap/dedust` | DeDust swap integration |
-| `@ton/walletkit/staking/tonstakers` | Tonstakers staking integration |
+| `@ton/walletkit/swap/omniston` | Swap integration |
+| `@ton/walletkit/swap/dedust` | Swap integration |
+| `@ton/walletkit/staking/tonstakers` | Staking integration |
## Examples
diff --git a/content/applications/walletkit/web/staking.mdx b/content/applications/walletkit/web/staking.mdx
index c109a5b31..b9ebf5284 100644
--- a/content/applications/walletkit/web/staking.mdx
+++ b/content/applications/walletkit/web/staking.mdx
@@ -12,7 +12,7 @@ WalletKit exposes the `StakingManager` class as `kit.staking`. It accepts the us
The staking flow includes these steps:
1. Read the user's staking balance with `getStakedBalance()` or query the jetton balance directly.
-1. If you need to override the default provider, use `setDefaultProvider()`. WalletKit ships a bundled provider — **Tonstakers**, but you can configure a custom one.
+1. If you need to override the default provider, use `setDefaultProvider()`. WalletKit ships a bundled provider, but you can configure a custom one.
1. Use `getQuote()` to calculate a quote for a stake/unstake based on the user intent and the current state of the liquidity pool. The intent includes the direction (stake or unstake), the amount, and other parameters.
1. Use the `buildStakeTransaction()` method to turn the accepted quote into a `TransactionRequest`.
@@ -24,7 +24,7 @@ You need a connected wallet and a staking provider registered on the WalletKit i
By default, the provider is the first one you registered. To override it for a specific call, pass `providerId` to any method. To change the default globally, use `setDefaultProvider()`. Note that passing an unknown `providerId` throws an error.
-WalletKit ships a bundled provider — **Tonstakers**, but you can configure a custom one. Extend the `StakingProvider` class. Implement `getQuote()`, `buildStakeTransaction()`, `getStakedBalance()`, `getStakingProviderInfo()`, `getStakingProviderMetadata()`, and `getSupportedNetworks()`.
+WalletKit ships a bundled provider, but you can configure a custom one. Extend the `StakingProvider` class. Implement `getQuote()`, `buildStakeTransaction()`, `getStakedBalance()`, `getStakingProviderInfo()`, `getStakingProviderMetadata()`, and `getSupportedNetworks()`.
## Methods
@@ -76,7 +76,7 @@ const quote = await kit.staking.getQuote(
For an unstake, swap `direction` to `unstake`.
-If the provider accepts more than one unstake mode, pass `unstakeMode`. For example, Tonstakers supports the following modes: `UnstakeMode.INSTANT`, `UnstakeMode.WHEN_AVAILABLE`, and `UnstakeMode.ROUND_END`.
+If the provider accepts more than one unstake mode, pass `unstakeMode`. For example, the bundled provider supports the following modes: `UnstakeMode.INSTANT`, `UnstakeMode.WHEN_AVAILABLE`, and `UnstakeMode.ROUND_END`.
```ts title="TypeScript"
import { UnstakeMode } from '@ton/walletkit';
@@ -132,4 +132,4 @@ Then call `getStakedBalance()` to see the updated staking balance.
- The `apy` and `instantUnstakeAvailable` values returned by `getStakingProviderInfo()` are provider-supplied display data, not guarantees of future yield or withdrawal timing.
- You can quote by expected output rather than input — for example, "I want to receive exactly 100 TON, how much tsTON do I need to unstake?". To do this, set `isReversed: true` in the quote params. The `amount` then specifies the desired output, and `amountIn` in the returned quote gives the required input.
-- When using Tonstakers unstake modes, keep in mind that `INSTANT` and `WHEN_AVAILABLE` use the spot rate, `ROUND_END` uses the projected rate, and omitting `unstakeMode` defaults to `INSTANT`.
+- When using unstake modes of the bundled provider, keep in mind that `INSTANT` and `WHEN_AVAILABLE` use the spot rate, `ROUND_END` uses the projected rate, and omitting `unstakeMode` defaults to `INSTANT`.
diff --git a/content/contracts/blueprint/api.mdx b/content/contracts/blueprint/api.mdx
index 3c5f00a3d..5b8bb1f1b 100644
--- a/content/contracts/blueprint/api.mdx
+++ b/content/contracts/blueprint/api.mdx
@@ -748,7 +748,7 @@ type BlueprintTonClient = TonClient4 | TonClient | ContractAdapter | LiteClient;
- `TonClient4` — TON HTTP API v4 client
- `TonClient` — TON HTTP API v2/v3 client
-- `ContractAdapter` — TON API adapter
+- `ContractAdapter` — Abstract TON API adapter
- `LiteClient` — Lite client for direct node communication
### `Explorer`
@@ -759,12 +759,6 @@ Supported blockchain explorer types.
type Explorer = 'tonscan' | 'tonviewer' | 'toncx' | 'dton';
```
-**Supported explorers:**
-
-- `'tonscan'` — [Tonscan](https://tonscan.org) explorer
-- `'toncx'` — [TON.cx](https://ton.cx) explorer
-- `'dton'` — [dTON.io](https://dton.io) explorer (deprecated)
-
## Configuration
For detailed configuration options, refer to the [Blueprint Configuration](/contracts/blueprint/config) guide.
diff --git a/content/contracts/blueprint/cli.mdx b/content/contracts/blueprint/cli.mdx
index 9c67e9398..79efa74f6 100644
--- a/content/contracts/blueprint/cli.mdx
+++ b/content/contracts/blueprint/cli.mdx
@@ -161,9 +161,10 @@ npx blueprint run