Skip to main content

useMakeBid

Hook for placing a bid on a Marketplace auction listing.

Bids have several important properties:

  • Cannot be canceled once placed.
  • Are automatically refunded if they are outbid.
  • Must be higher than the current highest bid by the percentage defined in the bid buffer.
  • Must be higher than the reserve price (if there is no bid yet).
import { useMakeBid } from "@thirdweb-dev/react";

Usage

Provide your Marketplace contract instance from the useContract hook as the argument.

Then, provide the listingId and bid value to the mutation.

import { useMakeBid, useContract, Web3Button } from "@thirdweb-dev/react";

// Your smart contract address
const contractAddress = "{{contract_address}}";

function App() {
const { contract } = useContract(contractAddress, "marketplace");
const { mutateAsync: makeBid, isLoading, error } = useMakeBid(contract);

return (
<Web3Button
contractAddress={contractAddress}
action={() =>
makeBid({
listingId: "1", // ID of the listing to bid on. Must be an auction.
bid: "1", // Uses the currencyContractAddress of the listing.
})
}
>
Make Bid
</Web3Button>
);
}

Configuration

listingId (required)

The ID of the listing to bid on. Must be an auction type listing. (Use useMakeOffer for direct listings).

If the listing cannot be found, is not an auction, or is not active, the error property will be set.

import { useMakeBid, useContract, Web3Button } from "@thirdweb-dev/react";

// Your smart contract address
const contractAddress = "{{contract_address}}";

const listingId = "{{listing_id}}";

function App() {
const { contract } = useContract(contractAddress, "marketplace");
const { mutateAsync: makeBid, isLoading, error } = useMakeBid(contract);

return (
<Web3Button
contractAddress={contractAddress}
action={() =>
makeBid({
listingId: listingId, // ID of the listing to bid on. Must be an auction.
bid: "1", // Uses the currencyContractAddress of the listing.
})
}
>
Make Bid
</Web3Button>
);
}

bid (required)

The amount to bid on the listing. Uses the currencyContractAddress of the listing.

For example, if the listing uses the NATIVE_TOKEN_ADDRESS on Ethereum, the bid amount is the amount of ETH to bid. Can be in the form of a number, string, or BigNumber.

The bid value must be either:

  • Greater than or equal to the reserve price if there is no current bid.
  • Greater than the current highest bid by the percentage defined in the bid buffer.

Use the useNextMinimumBid hook to get the next minimum bid amount required.

import { useMakeBid, useContract, Web3Button } from "@thirdweb-dev/react";

// Your smart contract address
const contractAddress = "{{contract_address}}";

// What value to place in the bid
const amountToBid = "{{amount_to_bid}}";

function App() {
const { contract } = useContract(contractAddress, "marketplace");
const { mutateAsync: makeBid, isLoading, error } = useMakeBid(contract);

return (
<Web3Button
contractAddress={contractAddress}
action={() =>
makeBid({
listingId: 0, // ID of the listing to bid on. Must be an auction.
bid: amountToBid, // Uses the currencyContractAddress of the listing
})
}
>
Make Bid
</Web3Button>
);
}