# Add or remove a bid on an auction

### Prerequisites

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

1. [Create a Ternoa](/getting-started/wallets/ternoa-wallet.md) account with [Alphanet CAPS](broken://pages/ej9gceaLIhCN2PgUBh42)
2. Install and set up your editor of choice (we will use Visual Studio Code \[VSC] in this tutorial)
3. Install [NodeJS v.14+](https://nodejs.org/en/download/) & NPM
4. [Install & initialize Ternoa-JS](/build-1/javascript/ternoa-js-library-utilities/installation-and-initialization.md)

### Bid on an auction using Ternoa-JS

This function adds a bid to an existing auction NFT on the Ternoa chain. It returns an object promise containing the BidAddedEvent provided by the Ternoa blockchain.

{% hint style="info" %}
Use your own account by updating the `//TernoaTestAccount` with your account seed when retrieving the keyring from the example below. **Replace the NFT\_ID** with the existing one to bid on, and the **bidAmount**.
{% endhint %}

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

const auctionBid = async () => {
    try {
        await initializeApi();
        const keyring = await getKeyringFromSeed("//TernoaTestAccount");
        const NFT_ID = // update with the nft id you want to bid on.
        const bidAmount = // update with the amount to bid.
        const res = await addBid(
            NFT_ID,
            bidAmount,
            keyring,
            WaitUntil.BlockInclusion
        );
        console.log(`Bid added to NFT ${res.nftId} for ${res.amountRounded}CAPS`);
    } catch (e) {
        console.error(e);
    }
};
```

#### The expected params

```markdown
`nftId`: The ID of the auctioned NFT.
`amount`: Rhe amount to bid.
`keyring`: The provided keyring (containing the address) will be used to sign the transaction and pay the execution fee.
`waitUntil`: WaitUntil defines at which point we want to get the results of the transaction execution: BlockInclusion or BlockFinalization.
```

#### Response

The response provided from the blockchain event includes all the information below according to the parameters provided when bidding on an auction.

```markdown
`nftId`: NFT id auctioned.
`bidder`: The bidder's address.
`amount`: The amount bid as a string corresponding to the value in a big number.
`amountRounded`: The amount bid as a number.
```

### Remove a bid using Ternoa-JS

This function removes a bid from an auction on the Ternoa chain. It returns an object promise containing the BidRemovedEvent provided by the Ternoa blockchain.

{% hint style="info" %}
Use your own account by updating the `//TernoaTestAccount` with your account seed when retrieving the keyring from the example below. **Replace the NFT\_ID** with the existing one to remove the bid.&#x20;
{% endhint %}

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

const auctionBidRemoved = async () => {
    try {
        await initializeApi();
        const keyring = await getKeyringFromSeed("//TernoaTestAccount");
        const NFT_ID = // update with the nft id you want to remove the bid.
        const res = await removeBid(
            NFT_ID,
            keyring,
            WaitUntil.BlockInclusion
        );
        console.log(`Bid removed from NFT ${res.nftId}`);
    } catch (e) {
        console.error(e);
    }
};
```

#### The expected params

```markdown
`nftId`: The ID of the auctioned NFT.
`keyring`: The provided keyring (containing the address) will be used to sign the transaction and pay the execution fee.
`waitUntil`: WaitUntil defines at which point we want to get the results of the transaction execution: BlockInclusion or BlockFinalization.
```

#### Response

The response provided from the blockchain event includes all the information below according to the parameters provided when removing a bid.

```markdown
`nftId`: NFT id auctioned.
`bidder`: The bidder address who removed the bid.
`amount`: The bid amount removed as a string corresponding to the value in a big number.
`amountRounded`: The bid amount is removed as a number.
```

### Support

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


---

# 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://docs.ternoa.network/build-1/javascript/nft-features-and-pallets/sale-your-nft/auction/add-or-remove-a-bid-on-an-auction.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.
