# Simplest / best way to make inter-canister calls in Motoko

**URL:** <https://forum.dfinity.org/t/simplest-best-way-to-make-inter-canister-calls-in-motoko/18058>\
**Category:** Language Support\
**Tags:** Motoko\
**Created:** [January 18, 2023, 4:52pm UTC](https://forum.dfinity.org/t/simplest-best-way-to-make-inter-canister-calls-in-motoko/18058 "2023-01-18T16:52:03Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![blabagastered](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/blabagastered/32/8592_2.png) [@blabagastered](https://forum.dfinity.org/u/blabagastered)\
**Post date:** [January 19, 2023, 10:42am UTC](https://forum.dfinity.org/t/simplest-best-way-to-make-inter-canister-calls-in-motoko/18058/4 "2023-01-19T10:42:29Z")

</div>

Yes, it turns out the problem was class actor canisters can’t be imported with `canister:`, which is the only way I found the docs and examples made reference to:

> [@Import "canister: canistername" error](https://forum.dfinity.org/t/import-canister-canistername-error/6225/2):
>
> I had this the other day. Is your canister a class? You can’t import it with canister:. You need to create an actor type that conforms to the actor interface and seed it with a hardcoded principal.

By using the service pattern, it worked. In my case:

` let icrc_token_canister = actor ("r7inp-6aaaa-aaaaa-aaabq-cai") : ICRCTypes.TokenInterface;`

@Vivienne If you have any say in the docs / examples, I suggest making clear that

`import AAA "canister:aaa";`

does not and cannot work with class actors. I spent quite a while trying to make `canister:` work yesterday.

---

_[View the full topic](https://forum.dfinity.org/t/simplest-best-way-to-make-inter-canister-calls-in-motoko/18058)._
