> For the complete documentation index, see [llms.txt](https://docs-sdk.crypto-chief.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-sdk.crypto-chief.com/processing/go/guides/ton.md).

# TON: Jetton, NFT & comments

Transfer TON Jettons, NFTs, and text comments in Go with one call.

TON contract bodies are program-specific cells with no Solidity-style ABI, so the SDK encodes them for you behind high-level helpers.

## Jetton transfer (e.g. USDT on TON)

```go
amount, _ := cryptochief.HumanToBase("0.5", 6) // USDT Jetton has 6 decimals

signed, _ := c.Transactions.JettonTransfer(ctx, &cryptochief.JettonTransferRequest{
    Network:      cryptochief.ChainTONMainnet,
    FromAddress:  "EQYourWallet...",
    JettonMaster: "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs", // USDT
    Recipient:    "EQRecipient...",
    Amount:       amount,
    Memo:         "Order #4242", // optional — shown to the receiver as a comment
})
```

The sender's Jetton wallet address and the gas budget are resolved automatically. If you've already pre-resolved them, pass `JettonWalletAddress` and `AttachedTON` to skip the lookup.

## NFT transfer

```go
c.Transactions.NFTTransfer(ctx, &cryptochief.NFTTransferRequest{
    Network:     cryptochief.ChainTONMainnet,
    FromAddress: "EQYourWallet...",
    NFTItem:     "EQItemAddr...",
    NewOwner:    "EQRecipient...",
    AttachedTON: cryptochief.NanoTON("0.05"),
})
```

## Text comment

```go
c.Transactions.SendTONComment(ctx, &cryptochief.TONCommentRequest{
    Network:     cryptochief.ChainTONMainnet,
    FromAddress: "EQYourWallet...",
    Recipient:   "EQRecipient...",
    Text:        "Thanks for the coffee!",
    AmountTON:   cryptochief.NanoTON("1"),
})
```

## Arbitrary TON contracts

Build the body cell yourself with a TON library and pass the bytes to the lower-level `SignTONCall`:

```go
c.Transactions.SignTONCall(ctx, &cryptochief.TONCallRequest{
    Network:  cryptochief.ChainTONMainnet,
    FromAddress: "EQ...",
    Contract: "EQ...",
    Value:    "50000000", // nanoTON attached
    BodyCell: bocBytes,
})
```

{% hint style="info" %}
For TON amounts, `cryptochief.NanoTON("0.05")` returns the nanoTON decimal string the `AttachedTON` / `AmountTON` fields expect.
{% endhint %}
