About the project
An archived TON prototype: my Tact contract system and a TypeScript transaction parser built from scratch.
An archived TON prototype: my Tact contract system and a TypeScript transaction parser built from scratch.
TypeScript, Tact, TON, TonAPI, @ton/core
An archived TON prototype: my Tact contract system and a TypeScript transaction parser built from scratch.
I developed a system of interacting smart contracts in Tact and built its transaction parser from scratch in TypeScript. The parser fetches transaction traces from TonAPI, walks the tree of internal messages and extracts structured data for Jetton creation and purchases. PaperPump remains an archived prototype.
A creator deploys a Jetton through the market contract. Buyers move the price along a cubic bonding curve; sellers return tokens through the Jetton wallet flow and receive TON from the market reserve. An indexer translates on-chain activity for the API and interface.
Internal TON messages connect independently deployed contracts.
Create and trade
Factory, curve, TON reserve
Master and controlled mint
Holder balance and transfer
Events into application data
Built a custom parser for my Tact contract system using TypeScript, Express, TonAPI and @ton/core. It routes creation and purchase messages by opcode, traverses transaction traces, reads contract getter results and decodes Jetton metadata into structured reports.
During testnet development, default address formatting omitted the test-only flag. Raw TON addresses do not encode this flag. I introduced a shared formatter that receives the selected network and sets testOnly when producing user-friendly addresses. The same network value selects the API endpoints and configures the HTTP response serializer. This explicitly restores presentation context; it does not change the account address or infer the network from it.
The root contract derives StateInit and deploys a separate PaperJetton master for every launch.
Buy triggers minting through the master and holder wallet. Sell travels back as TokenNotification, then burns tokens and releases TON.
The cubic curve uses integer arithmetic, explicit precision and an integer cube-root implementation suitable for the VM.
Expected child addresses are derived from code and data instead of accepted as arbitrary input.
A minter, collection and item contract model time-bound activation separately from token ownership.
Tact contract logic and the TypeScript parser that turns transaction traces into application data.
The project was not completed or released. The sell path still contains an unresolved wallet-sender verification marker, and the subscription minter contains an unfinished forwarding flow. It is presented as a Tact and multi-contract architecture study, not as a production protocol.
Contract-level map of creation, cubic-curve trading, Jetton wallet messages, indexing and the unfinished subscription NFT branch.