# Contract Interfaces

**URL:** https://forum.fuel.network/t/contract-interfaces/5305
**Category:** Sway
**Tags:** tutorials, faqs
**Created:** [May 16, 2024, 11:00am UTC](https://forum.fuel.network/t/contract-interfaces/5305 "2024-05-16T11:00:51Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![alphaK3Y](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/alphak3y/32/1017_2.png) [@alphaK3Y](https://forum.fuel.network/u/alphaK3Y)
#### Post date: [May 16, 2024, 11:00am UTC](https://forum.fuel.network/t/contract-interfaces/5305/1 "2024-05-16T11:00:51Z")

</div>

Is there a standard way to declare an ABI and then call a contract address using that ABI?

I didn’t see any mention of this in the documentation so apologies if I missed something!

- alphak3y

---

<div class="post-metadata">

### Author: ![alphaK3Y](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/alphak3y/32/1017_2.png) [@alphaK3Y](https://forum.fuel.network/u/alphaK3Y)
#### Post date: [May 16, 2024, 11:06am UTC](https://forum.fuel.network/t/contract-interfaces/5305/2 "2024-05-16T11:06:01Z")

</div>

Found my answer here:

> **[Sway | Fuel Docs](https://docs.fuel.network/docs/sway/blockchain-development/calling_contracts/)**
>
> Official documentation for the Sway language

---

<div class="post-metadata">

### Author: ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)
#### Post date: [May 16, 2024, 11:14am UTC](https://forum.fuel.network/t/contract-interfaces/5305/3 "2024-05-16T11:14:48Z")

</div>

Hey @alphaK3Y, I am glad you found a solution to your issue. Lmk if you want any more help 🙂

---

<div class="post-metadata">

### Author: ![alphaK3Y](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/alphak3y/32/1017_2.png) [@alphaK3Y](https://forum.fuel.network/u/alphaK3Y)
#### Post date: [May 16, 2024, 11:14am UTC](https://forum.fuel.network/t/contract-interfaces/5305/4 "2024-05-16T11:14:59Z")

</div>

By importing the ContractA ABI, you can make a call to a contract supporting the ContractA interface.

```auto
// ./contract_b.sw
contract;
 
use contract_a::ContractA;
 
abi ContractB {
    fn make_call();
}
 
const contract_id = 0x79fa8779bed2f36c3581d01c79df8da45eee09fac1fd76a5a656e16326317ef0;
 
impl ContractB for Contract {
    fn make_call() {
      let x = abi(ContractA, contract_id);
      let return_value = x.receive(true, 3); // will be 45
    }
}

```
