# Transacting

Transactions in the Public Mint blockchain are quite similar to Ethereum, with one key difference: for now the USD token  is the same as native blockchain token.&#x20;

Read on to learn your way around the basics.

{% hint style="success" %}

### What you'll need

* [Node.js](https://nodejs.org/en/download/)
* [Web3.js](https://github.com/ethereum/web3.js/)
* [PublicMint-web3.js](https://public-mint-community.gitlab.io/publicmint-web3.js/tutorial-QuickStart.html)
  {% endhint %}

{% hint style="warning" %}
Just like Ethereum, transactions in the Public Mint blockchain can either *read* or *write* to the blockchain. While read-type transactions are free, writing (i.e. changing the state) entails fees. Ethereum fees are paid in ETH. In contrast, all fees on Public Mint are **paid in&#x20;*****fiat***.
{% endhint %}

### Creating a wallet

If you haven't created a Public Mint [Web Wallet](https://developers.publicmint.io/other-information/web-wallet) and don't have your own, then the first thing you need is a wallet. Start by connecting to a node - check the [previous section](https://developers.publicmint.io/api/connecting#starting-your-node) to get the code.

After that, it's simple:

```javascript
const web3 = new PublicMint(2019) // test network

const {
	wallet
} = web3.pm

// Add first account

// 0x4389Af2E0515dDFe3453B1bD748aDfD5e2598cFd
const walletAccountPrivateKey1 = "0xba6cdfcc795484a9774eb98e756983da822ef3481b37d4ba649864e2d1ab4e5e";
wallet.add(walletAccountPrivateKey1);

```

And that's it - keep them safe and don't show anyone. Please DO NOT send funds into the addresses above as they are published on the internet, taken from the web3.js documentation.

### Looking up your balance

{% hint style="danger" %}

### Important

Within the code, Public Mint uses the same monetary units as Ethereum when referring to its native tokens - ***Wei*** and ***Ether***. Even though the name is the same, within the context these units represent tokenized fiat.
{% endhint %}

Let's use PublicMint-web3.js to get the balance of a Public Mint address.&#x20;

```javascript
 const myBalance = await web3.pm.wallet.accounts.getBalance("address in wallet");
```

### Sending Funds

Here is what you need to do to send funds to another Public Mint address.&#x20;

Follow the steps above to get a wallet and check your balance. Here's the code snippet to transfer tokens:

```javascript
const {
    toToken// Convert 'USD'/'ETHER' into small blockchain unit 'wei'
} = web3.pm.utils

const transferReceipt = await web3.pm.wallet.accounts.transfer(<destinyAccount>, toToken(10))

```

### More transactions

{% hint style="info" %}
For a comprehensive list of transactions with examples, please check the [web3.js documentation](https://web3js.readthedocs.io/en/v1.2.1/)'s list of methods.
{% endhint %}
