> For the complete documentation index, see [llms.txt](https://tutorial.neoline.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tutorial.neoline.io/reference/neo3-provider-api/call.md).

# call

Calls a contract off-chain and returns the execution result.

## Parameters

#### 1. invocation *(required)*

`InvocationArguments`

```ts
type InvocationArguments = {
  hash: UInt160;
  operation: string;
  args?: Argument[];
  abortOnFail?: boolean;
};
```

## Returns

`Promise<InvocationResult>`

```ts
type InvocationResult = {
  script: Base64Encoded;
  state: VMState;
  gasconsumed: Integer;
  exception?: string;
  notifications: Notification[];
  stack: StackItem[];
};
```

## Errors

| Code    | Name        | Description                       |
| ------- | ----------- | --------------------------------- |
| `10002` | `INVALID`   | One or more inputs are invalid.   |
| `10008` | `RPC_ERROR` | The RPC server returned an error. |

## Example

### Request

```js
const result = await provider.call({
  hash: "0xd2a4cff31913016155e38e474a2c06d08be276cf",
  operation: "transfer",
  args: [
    {
      type: "Hash160",
      value: "0x9a7c5085dcdd4adf9ec12f2d1a7d6b741ad4b20a",
    },
    {
      type: "Hash160",
      value: "0x79f3ac32a7b68280da5cf4207139c7349261f7bd",
    },
    {
      type: "Integer",
      value: "200000",
    },
    {
      type: "Any",
      value: null,
    },
  ],
});
```

### Response

```js
{
  script: 'CwJADQMADBR+pC/JJsH98scvBTlYWERFt4F5EgwUp+6GCOYP0MQkB348kXfiHVYgFnYUwB8MCHRyYW5zZmVyDBTPduKL0AYsSkeO41VhARMZ88+k0kFifVtS',
  state: 'HALT',
  gasconsumed: '215925',
  exception: null,
  notifications: [],
  stack: [
    {
      type: 'Boolean',
      value: false
    }
  ]
}
```
