TON blockchain bindings and utilities for game engines:
Installation:
# for Phaser
npm install --save @ton/phaser-sdk@beta
# for Cocos
npm install --save @ton/cocos-sdk@beta
# for Cocos
npm install --save @ton/vanilla-sdk@beta
Creating GameFi instance:
// creation options described in the related section
const gameFi = await GameFi.create()
Connecting wallet:
// create the UI scene
class UiScene extends Phaser.Scene {}
const uiScene = new UiScene();
// add the connect button to the scene
// all options described in the related section
const button: Container = gameFi.createConnectButton({
scene: uiScene
})
Watching wallet connection:
gameFi.onWalletChange((wallet: Wallet | null) => {
// do the logic depending weather wallet is null or not
})
This can be used for:
Engine specific features can be included to related SDKs. For example, phaser-sdk has build-it UI for connecting wallet. There is almost no differences between SDKs features right now.
Start with SDK of related engine if you use one. Use @ton/vanilla-sdk otherwise.
GameFi static methods:
| Method | Description |
|---|---|
| create | creates a GameFi instance |
GameFi instance methods:
| Method | Description |
|---|---|
| createConnectButton | creates a button to connect a wallet. |
| connectWallet | connect wallet manually (without build-in UIs) |
| onWalletChange | watch weather wallet was connected or disconnected |
| disconnectWallet | disconnect wallet manually (without build-in UIs) |
| buyWithTon | buy from in-game shop with TON |
| buyWithJetton | buy from in-game shop with jetton |
| transferTon | transfer TON to another wallet address |
| transferJetton | transfer jetton to another wallet address |
| openNftCollection | open NFT collection contract |
| openNftSale | open NFT collection contract |
| openNftItem | open NFT item contract |
| openNftItemByIndex | open NFT item contract using its index |
| openSbtCollection | open SBT collection contract |
| openJetton | Open Jetton contract |
| openJettonWallet | Open Jetton Wallet contract |
GameFi instance props:
| Prop | Description |
|---|---|
| assetsSdk | asset-sdk instance in case you need to use it directly |
| walletConnector | wallet connector instance in case you need to use it directly |
| wallet | user's connected wallet |
| walletAccount | user's connected account |
| walletAddress | user's connected wallet address |
| merchantAddress | in-game shop's address to receive TON |
| merchantJettonAddress | in-game shop's jetton used as in-game currency |
To learn complex use cases:
The full typedoc references.
Generated using TypeDoc