> For the complete documentation index, see [llms.txt](https://hyperdapp.gitbook.io/code-editor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hyperdapp.gitbook.io/code-editor/guides/call-abi-method.md).

# Call ABI Method

* You can call a method from a specific smart contract by using `call_fn()` predicate:

```
call_fn(contract_name, function_name(...inputs), [value(payable_eth)], [Output])
```

The third parameter is required only for ***payable*** methods.

* Calling a ***view*** method without inputs:

```
call_fn(hyperdapp, name, [Name])
```

The function result will be stored in the `Name` variable.

{% hint style="warning" %}
The Output name must be in **PascalCase**.
{% endhint %}

* Calling a ***view*** method with inputs:

```
call_fn(hyperdapp, ownerOf(55), [OwnerAddress])
```

* Calling a **payable** method:

```
call_fn(hyperdapp, mint, [value(eth(0.1))], [])
```

{% hint style="warning" %}

* ***value()*** predicate receive only ***WEI*** value

* You can use the ***eth()*** predicate if you want to convert ***ETH -> WEI***

* You must provide the ***Output*** array even if there is no output
  {% endhint %}

* Calling a **non-payable** method:

```
call_fn(hyperdapp, withdraw(1), [])
```
