# Transfer GTokens

Gtoken is a non-fungible utility token used within the Ternoa network, not mineable or tradable with other fungible tokens.

### Prerequisites

Before getting started, make sure you have the following ready:

1. [Create a Ternoa](https://docs.ternoa.network/getting-started/wallets/ternoa-wallet) account with [Alphanet CAPS](https://docs.ternoa.network/build-1/javascript/nft-features-and-pallets/tokens/g-token/broken-reference)
2. Own a GToken on alphanet created using [Polkadot js portal](https://polkadot.js.org/apps/#/explorer).
3. Install and set up your editor of choice (we will use Visual Studio Code \[VSC] in this tutorial)
4. Install [NodeJS v.14+](https://nodejs.org/en/download/) & NPM
5. [Install & initialize Ternoa-JS](https://docs.ternoa.network/build-1/javascript/ternoa-js-library-utilities/installation-and-initialization)

### How to transfer GTokens to an address

This example shows how to transfer a GToken balance to an address using `assetTransfer`.&#x20;

```typescript
import {
	initializeApi,
	assetTransfer,
	getKeyringFromSeed,
	WaitUntil,
} from "ternoa-js";

const main = async () => {
	try {
		await initializeApi ();

		const keyring = await getKeyringFromSeed("REPLACE_WITH_THE_TRANSACTION_SIGNER_SEED");
		const TO_ADDRESS = "REPLACE_WITH_THE_DEST_ADDRESS";
		const GTOKEN_ID = REPLACE_WITH_THE_GTOKEN_ID
		const amount = REPLACE_WITH_THE_GTOKEN_AMOUNT_TO_TRANSFER
	
		const transferData = await balancesTransfer(
			GTOKEN_ID,
			TO_ADDRESS,
			amount,
			keyring,
			WaitUntil.BlockInclusion
		);
		console.log(
			`The amount transferred to ${TO_ADDRESS} is:`,
			transferData.amountRounded,
			"GTOKENS"
		);
		return transferData
	} catch (e) {
		console.error(e);
		process.exit(1)
	} finally {
		process.exit(0)
	}
};

main();
```

### Support

If you face any trouble, feel free to reach out to our community engineers in our [Discord](https://discord.gg/fUmBkPpnRu).
