Triggers the buy flow to purchase a token. Will only work during a public sale. This is equivalent to what web3 developers refer to as "mint".


If a user has not connected their wallet, buy() will automatically call connect()

amountNumberY# of tokens to mint/buy
tokenIdNumberNA specific token to buy/mint. For 721 contracts this should be 0. For 1155 contracts this should be the tokenId. TokenIds can be found in the dashboard in the "Tokens" tab.
waitBooleanNBlocks the return of this function until the transaction has completed on network by calling waitForTransaction(). Note that the transaction may take a while to resolve depending on network traffic.


    "hash": "string"

Example Usage

const amount = 1;
const waitForTransaction = true;

// ERC721
const transaction = await, 0, waitForTransaction);

// ERC1155
const tokenId = 0;
const transaction = await, tokenId, waitForTransaction);

// Optional (if waitForTransaction is false)
const status = await contract.getTransactionStatus(transaction);

Returns a transaction with the network hash which can be used to poll for completion or in the waitForTransaction function.

On Polygon networks, an approve transaction is also triggered to give the contract access to the user's WETH.

Possible Errors

All errors are prefixed with HM (buy) -

  • Insufficient tokens - The contract does not have enough remaining supply
  • Insufficient funds - The wallet does not have enough funds
  • Errors in the connect() function


Something not quite right, unclear or can't find what you are looking for? Please let us know at and we will get back to you as soon as we can.