Создание игровых опытов с The Sandbox SDK
Игрок заходит в зону эксклюзивного контента, а игра не проверяет, владеет ли он LAND — разочарование пользователя. Интеграция The Sandbox SDK решает эту задачу за несколько строк кода. Вместо того чтобы писать собственные смарт-контракты на Solidity, настраивать взаимодействие с Polygon и создавать отдельный маркетплейс, вы используете готовые инструменты SDK. Это снижает затраты на разработку до 70% и сокращает сроки с месяцев до недель. Мы делаем это под ключ, экономя ваше время. Получите консультацию — мы поможем выбрать оптимальный стек для вашего проекта.
Самостоятельная разработка тех же функций без SDK займёт 2–6 месяцев и потребует полного аудита безопасности. Готовые контракты The Sandbox уже прошли аудит и покрывают 90% типовых сценариев: проверка владения LAND, покупка ASSET, гейткипинг контента. В среднем интеграция на основе SDK ускоряет выход на рынок в 3 раза — с полугода до двух недель для базового функционала.
Какие проблемы решает The Sandbox SDK?
SDK включает VoxEdit для создания воксельных ассетов, Game Maker для визуального программирования и TypeScript SDK для кастомной логики. Дополнительно доступны REST API для маркетплейса и GraphQL для данных о LAND. Ключевые проблемы, которые мы решаем с помощью SDK:
- Проверка владения LAND в реальном времени. Используем
ethers.jsдля вызова контрактов Polygon и получения balanceOf. Это основа для гейткипинга — доступ к эксклюзивным зонам получают только владельцы NFT. - Интеграция маркетплейса внутри игры. Через Marketplace API и Exchange контракт пользователи могут покупать и продавать ASSET не покидая игровой мир. Поток подписи транзакций через MetaMask настраивается за считанные дни.
- Кастомная игровая логика на TypeScript. События входа в зону, взаимодействия с NPC, обработка покупок — всё это пишется на знакомом стеке без углубления в Solidity.
Типичные ошибки при самостоятельной интеграции: неправильные ABI, неверные адреса контрактов (например, LAND адрес на Polygon), игнорирование газовых лимитов при батч-вызовах, отсутствие обработки событий для обновления состояния. Мы избегаем этих проблем благодаря опыту и использованию проверенных библиотек.
Пошаговый процесс интеграции
- Анализ требований и сценариев игры: определение механик — проверка владения, покупка ассетов, гейткипинг, взаимодействие с NPC.
- Настройка Web3 провайдера: подключение Polygon через
ethers.JsonRpcProviderилиviem, установка SDKnpm install @sandbox/game-sdk. - Разработка логики проверки активов: используем Sandbox Game SDK для получения кошелька игрока и вызова
balanceOfна LAND и ASSET контрактах. - Интеграция Marketplace API: настройка листинга и покупки ASSET через Exchange контракт с подписью транзакций через
window.ethereum. - Тестирование и отладка: используем Tenderly для симуляции транзакций, Slither для статического анализа кода. Проверяем обработку ошибок (недостаточно газа, отмена транзакции).
- Деплой и документация: публикуем игровой опыт на The Sandbox карте, передаём команде документацию по поддержке.
Сравнение: SDK vs самостоятельная разработка
| Аспект | Без SDK | С The Sandbox SDK |
|---|---|---|
| Необходимый стек | Solidity, Hardhat, ethers.js | TypeScript, Game Maker, VoxEdit |
| Время на MVP | 3–6 месяцев | 2–5 недель |
| Аудит безопасности | обязателен | не требуется |
| Гибкость | высокая | средняя (но покрывает 90% сценариев) |
| Затраты | высокие (аудит + разработка) | экономия до 70% |
SDK ускоряет разработку в 3 раза и снижает риски ошибок — контракты уже аудированы. Если вам нужна максимальная кастомизация, мы комбинируем SDK с собственными контрактами.
Пример кода: проверка владения LAND
Пример TypeScript-кода с ethers.js
import { ethers } from 'ethers'; // ABI для основных контрактов Sandbox const LAND_ABI = [ 'function ownerOf(uint256 tokenId) view returns (address)', 'function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)', 'function balanceOf(address owner) view returns (uint256)', ]; const ASSET_ABI = [ 'function balanceOf(address account, uint256 id) view returns (uint256)', 'function balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])', ]; // Polygon Mainnet адреса const LAND_CONTRACT = '0x50f5474724e0Ee42D9a4e711ccFB275809Fd6d4A'; const ASSET_CONTRACT = '0xa342f5D851E866E18ff98F351f2c6637f4478dB5'; async function getUserSandboxAssets(userAddress: string) { const provider = new ethers.JsonRpcProvider('https://polygon-rpc.com'); const landContract = new ethers.Contract(LAND_CONTRACT, LAND_ABI, provider); const assetContract = new ethers.Contract(ASSET_CONTRACT, ASSET_ABI, provider); // Получаем количество LAND токенов const landBalance = await landContract.balanceOf(userAddress); // Получаем все LAND tokenIds const landIds: bigint[] = []; for (let i = 0; i < Number(landBalance); i++) { const tokenId = await landContract.tokenOfOwnerByIndex(userAddress, i); landIds.push(tokenId); } return { landIds, landCount: Number(landBalance) }; } Этот код — основа для гейткипинга контента. LAND на карте Sandbox имеет координаты (x, y) в сетке 408×408. Через The Graph можно получить данные:
query GetLandDetails($tokenId: String!) { land(id: $tokenId) { id x y owner { address } estate { id } tokenURI } } Marketplace API интеграция
Торговля ассетами — ключевая фича метавселенной. Через API можно листить свои NFT, получать данные о ценах и покупать напрямую. Для листинга требуется подпись транзакции через MetaMask и вызов Exchange контракта.
const SANDBOX_API = 'https://api.sandbox.game'; async function getMarketplaceListing(assetId: string) { const response = await fetch(`${SANDBOX_API}/v1/assets/${assetId}`); return response.json(); } async function getUserCreations(walletAddress: string) { const response = await fetch( `${SANDBOX_API}/v1/assets?creator=${walletAddress}&status=published` ); return response.json(); } // Листинг собственного ASSET на маркетплейсе async function listAssetForSale(assetId: string, priceInSand: string) { const provider = new ethers.BrowserProvider(window.ethereum); const signer = await provider.getSigner(); const sandContract = new ethers.Contract(SAND_TOKEN, ERC20_ABI, signer); await sandContract.approve(MARKETPLACE_CONTRACT, ethers.MaxUint256); const marketplace = new ethers.Contract(MARKETPLACE_CONTRACT, MARKETPLACE_ABI, signer); await marketplace.createListing(assetId, ethers.parseEther(priceInSand)); } Что входит в услугу и сроки
- Разработка кастомной игровой логики на TypeScript SDK.
- Настройка проверки владения LAND и ASSET через Web3.
- Интеграция Marketplace API для покупки/продажи NFT внутри игры.
- Создание VoxEdit ассетов и их публикация.
- Документация по интеграции и обучение вашей команды.
- Поддержка после запуска.
Типовой проект занимает от 3 до 5 недель. Базовый функционал (проверка владения, простая игровая логика) — 1–2 недели. Стоимость рассчитывается индивидуально после знакомства с вашей идеей. Получите бесплатную оценку проекта — ответим в течение 24 часов. Свяжитесь с нами, чтобы обсудить детали.
Для более глубокого изучения возможностей SDK рекомендуем ознакомиться с официальной документацией на GitHub The Sandbox Game SDK.







