> ## Documentation Index
> Fetch the complete documentation index at: https://docs.saucerswap.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Unwrap WHBAR for HBAR

> Withdraw Wrapped HBAR (WHBAR) tokens to retrieve HBAR native cryptocurrency at a 1:1 ratio

<Info>
  **Contract ID:** [WhbarHelper](https://hashscan.io/mainnet/contract/0.0.5808826)
</Info>

<Warning>
  Granting a spender allowance to the **WhbarHelper** contract **is required** for the contract to transfer the [**WHBAR**](https://hashscan.io/mainnet/token/0.0.1456986) token from the user's wallet to the contract.
</Warning>

***

Function name: **unwrapWhbar**

| Parameter Name | Description                             |
| -------------- | --------------------------------------- |
| *uint256 wad*  | WHBAR token amount in its smallest unit |

<CodeGroup>
  ```solidity WhbarHelper.sol theme={null}
  /// @notice Safely unwrap whbar to msg.sender
  /// @dev This contract needs an allowance from msg.sender to transfer the whbar token
  /// @param wad The amount to unwrap
  function unwrapWhbar(uint wad) public {
    require(wad > 0, "WhbarHelper: wad cannot be lt zero");
    // transfer the whbar to this contract
    HederaTokenHelper.safeTransferFrom(whbarToken, msg.sender, address(this), wad);
    
    // approve sending the whbar to the whbar contract
    HederaTokenHelper.safeApprove(whbarToken, whbarContract, wad);
    
    // use withdraw(address src, address dst, uint wad) and use this contract and msg.sender to withdraw
    // to the contract caller
    IWHBAR(whbarContract).withdraw(address(this), msg.sender, wad);
  }
  ```
</CodeGroup>

### Code Overview

⛽ *Recommended gas: 1,000,000 gwei (\~ \$*0.085 *USD)*

<Tabs>
  <Tab title="JavaScript SDK">
    **Resources:**

    * [SaucerSwap deployed contract IDs](/developerx/contract-deployments)
    * [Hedera JavaScript SDK](https://github.com/hashgraph/hedera-sdk-js)
    * [Associate tokens to an account](https://docs.hedera.com/hedera/sdks-and-apis/sdks/token-service/associate-tokens-to-an-account)
    * [Calling a smart contract function](https://docs.hedera.com/hedera/sdks-and-apis/sdks/smart-contracts/call-a-smart-contract-function)

    ```Typescript Typescript theme={null}
    import { 
      ContractExecuteTransaction,
      TokenAssociateTransaction,
      Hbar,
      HbarUnit,  
      .. 
    } from '@hashgraph/sdk';

    //Client pre-checks:
    // - WhbarHelper contract has spender allowance for WHBAR token

    const params = new ContractFunctionParameters();
    params.addUint256(withdrawAmount); //amount in token's smallest unit

    await new ContractExecuteTransaction()
      .setContractId(whbarHelperContractId)
      .setGas(gasLim)
      .setFunction('unwrapWhbar', params)
      .execute(client);
    ```
  </Tab>
</Tabs>
