> For the complete documentation index, see [llms.txt](https://liquiidio.gitbook.io/unity-plugin-suite/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces/eossharp-core-interfaces-isignprovider.md).

# ISignProvider

Signature provider Interface to delegate multiple signing implementations.

## Summary

| Members                                                                                                                                                                                                                                  | Descriptions                                       |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| `public Task< IEnumerable< string > >` [`GetAvailableKeys`](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)`()`                                                                                         | Get available public keys from signature provider. |
| `public Task< IEnumerable< string > >` [`Sign`](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)`(string chainId, IEnumerable< string > requiredKeys, byte[] signBytes, IEnumerable< string > abiNames)` | Sign bytes using the signature provider.           |
| `public string` [`Sign`](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)`(string chainId, byte[] signBytes)`                                                                                            | Sign bytes using the signature provider.           |
| `public Dictionary< string, string >` [`Sign`](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)`()`                                                                                                      |                                                    |

## Members

**`public Task< IEnumerable< string > >`** [**`GetAvailableKeys`**](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)**`()`**

Get available public keys from signature provider.

#### Returns

List of public keys

**`public Task< IEnumerable< string > >`** [**`Sign`**](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)**`(string chainId, IEnumerable< string > requiredKeys, byte[] signBytes, IEnumerable< string > abiNames)`**

Sign bytes using the signature provider.

#### Parameters

* `chainId` EOSIO Chain id
* `requiredKeys` required public keys for signing this bytes
* `signBytes` signature bytes
* `abiNames` abi contract names to get abi information from

#### Returns

List of signatures per required keys

**`public string`** [**`Sign`**](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)**`(string chainId, byte[] signBytes)`**

Sign bytes using the signature provider.

#### Parameters

* `key` key used for signing
* `signBytes` signature bytes

#### Returns

List of signatures per required keys

**`public Dictionary< string, string >`** [**`Sign`**](/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces.md)**`()`**
