# 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](/other-information/web-wallet.md) 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](/api/connecting.md#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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.publicmint.io/blockchain-1/transacting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
