Интеграция с Particle Network (chain abstraction)
Particle Network позиционирует себя как Universal Accounts — пользователь имеет один аккаунт и один баланс, который работает на любой цепи без ручного bridging. Это следующий уровень после Account Abstraction: не просто умный кошелёк, а абстракция над мультичейн-окружением.
Концепция Universal Accounts
Проблема: у пользователя есть ETH на Ethereum, но он хочет взаимодействовать с протоколом на Base. Сейчас нужно: зайти на bridge, заплатить gas на Ethereum для bridge транзакции, подождать, получить ETH на Base, затем взаимодействовать с протоколом. 3-5 транзакций, 10-30 минут, $5-20 комиссий.
Universal Account решение: пользователь нажимает «использовать dApp на Base», система автоматически определяет откуда взять ликвидность, делает cross-chain операцию за кулисами, пользователь видит одну транзакцию и платит gas один раз в любом токене.
Технический стек
Particle Network состоит из:
- Particle Chain — L1 blockchain для координации universal accounts
- Universal Gas — оплата газа в любом токене на любой цепи
- Modular Smart Wallet-as-a-Service — embedded wallets с MPC-TSS
- Cross-chain liquidity layer — интеграция с major bridges (Axelar, LayerZero, Wormhole) для исполнения cross-chain операций
Интеграция Connect Kit
import { ConnectButton, useAccount, usePublicClient } from "@particle-network/connectkit";
import { mainnet, base, polygon } from "@particle-network/connectkit/chains";
import { AuthType } from "@particle-network/auth-core";
// Provider setup
export default function App() {
return (
<ConnectKitProvider
config={{
projectId: "YOUR_PROJECT_ID",
clientKey: "YOUR_CLIENT_KEY",
appId: "YOUR_APP_ID",
chains: [mainnet, base, polygon],
walletConnectors: [
evmWalletConnectors({
metadata: { name: "Your App" },
multiInjectedProviderDiscovery: true,
}),
authWalletConnectors({
authTypes: [AuthType.email, AuthType.google, AuthType.twitter],
fiatCoin: "USD",
promptSettingConfig: {
promptMasterPasswordSettingWhenLogin: 1,
},
}),
],
plugins: {
wallet: {
visible: true,
},
},
}}
>
<YourApp />
</ConnectKitProvider>
);
}
Universal Account для cross-chain операций
import { useUniversalAccount } from "@particle-network/universal-account-sdk";
function CrossChainButton() {
const { smartAccount } = useUniversalAccount();
async function executeOnBase() {
// Пользователь может иметь средства на любой цепи
// Universal Account найдёт лучший маршрут
const transaction = {
to: BASE_CONTRACT_ADDRESS,
value: parseEther("0.1"),
data: encodeFunctionData({ abi, functionName: "deposit" }),
chainId: 8453, // Base
};
// Система автоматически:
// 1. Проверит балансы пользователя по всем цепям
// 2. Выберет оптимальный источник ликвидности
// 3. Выполнит cross-chain операцию если нужно
// 4. Исполнит транзакцию на Base
const txHash = await smartAccount.sendTransaction(transaction, {
feeQuotes: await smartAccount.getFeeQuotes(transaction), // газ в любом токене
});
console.log(`Transaction: ${txHash}`);
}
return <button onClick={executeOnBase}>Execute on Base</button>;
}
Universal Gas
Пользователь платит газ в любом ERC-20 токене (USDC, USDT, нативные токены цепей). Particle Network конвертирует в нужный формат:
// Получение вариантов оплаты газа
const feeQuotes = await smartAccount.getFeeQuotes({
to: TARGET_CONTRACT,
value: 0n,
data: calldata,
});
// feeQuotes содержит варианты: ETH, USDC, USDT, etc.
// Выбираем USDC
const usdcQuote = feeQuotes.find(q => q.tokenInfo.symbol === "USDC");
const txHash = await smartAccount.sendTransaction(tx, {
feeQuote: usdcQuote,
tokenPaymaster: usdcQuote.tokenPaymaster,
});
MPC-TSS кошельки
Particle Network предоставляет MPC-TSS embedded wallets: ключ разделён между пользовательским устройством и Particle серверами, threshold подпись без полного ключа в одном месте.
import { ParticleNetwork, WalletEntryPosition } from "@particle-network/auth";
import { ParticleProvider } from "@particle-network/provider";
const particle = new ParticleNetwork({
projectId: "YOUR_PROJECT_ID",
clientKey: "YOUR_CLIENT_KEY",
appId: "YOUR_APP_ID",
chainName: "ethereum",
chainId: 1,
wallet: {
displayWalletEntry: true,
defaultWalletEntryPosition: WalletEntryPosition.BR,
},
});
// Social login с созданием MPC кошелька
await particle.auth.login({ preferredAuthType: "google" });
const provider = new ParticleProvider(particle.auth);
const accounts = await provider.request({ method: "eth_accounts" });
Интеграция Particle Network — 2-3 недели для базового флоу (social login + embedded wallet + gasless транзакции). Universal Accounts с cross-chain логикой — дополнительно 1-2 недели. Подходит для проектов, целящихся в массовый onboarding без требования разбираться в мультичейн.







