Case Studies
1. Skate Builder
About
Skate Builder is an ongoing testnet campaign that involves collecting different parts of a skateboard across multiple blockchains and assembling the complete skateboard on those various chains.
Check it out at https://park.skatechain.org/en/nft!
Skate Builder NFT as a TON SkateApp
Skate Builder NFT is a SkateApp and TEP-62 NFT comprises of two contracts:
-
Collection Contract (the SkateApp):
- Defines the properties of the Skate Builder NFT, including SkateBoard metadata for the collection and individual items, as well as the NFT item code.
- Specifies the structure for user intents to mint/build a skateboard.
- Provides a receive handler for the Skate Gateway to mint the necessary parts after processing user intents.
-
Item Contract (minted by Collection contract):
- Manages the ownership of the NFT (note: SkateBuilder NFTs are non-transferable).
- Stores the metadata URI associated with the NFT.
The Skate Builder NFT is non-transferable. Additionally, the NFT follows an ordered but non-sequential index, with missing indices belonging to other VMs. For example, NFTs may reside on platforms like EVM or Solana.
To interact with the Skate Gateway, the contract includes a mint_to#775281a7 user:address token_id:uint256 part:uint8 = MintTo
handler that can exclusively be called by Skate Gateway. This action is intended to be initiated by Skate executors with the following signature:
Mind the only_gateway()
modifier inside this function.
The source code is available at https://verifier.ton.org/EQAxQ0pJHat3VqT0nVsYZuk_zp0sISk-hSSWHzfxbpILAU6S?testnet=
2. Polymarket on TON
About
Skate is developing a Polymarket connector on TON to allow millions of TON users to seamlessly participate in Polymarket.
A sneak peek demo was showcased on our Twitter: https://x.com/skate_chain/status/1819265829244211340/video/1
This is still a work in progress, but we will be launching a mainnet version with updated code in the near future!
Polymarket as a TON SkateApp
-
To enable user intent for asset transfers, such as transferring USDT on TON for placing a bet, we use the
SkateInitiateTaskNotification
feature to register the intent by utilizing custom payload fromJettonTransferNotification
whenever USDT is moved from the user’s wallet to Skate. -
To settle a bet, user simply signs their request.
-
The rest of the intent settlement flow by the executor follows the same process as all Skate App transactions.