# EVM Contract Functions

This page documents the public functions available in the Signet EVM Contract.

For contract addresses, see [Contract Addresses](/primitives/contract-addresses). For type definitions, see [Types](/contract-api/evm/types).

## sign

Requests a signature from the MPC network on a 32-byte payload.

```solidity
function sign(SignRequest memory _request) external payable
```

### Parameters

| Parameter  | Type                                                 | Description              |
| ---------- | ---------------------------------------------------- | ------------------------ |
| `_request` | [`SignRequest`](/contract-api/evm/types#signrequest) | Signature request struct |

### Requirements

* Caller must send at least `getSignatureDeposit()` wei

### Emits

* [`SignatureRequested`](/contract-api/evm/events#signaturerequested)

## respond

Returns signatures from the MPC network. Called by MPC responders after signature generation.

```solidity
function respond(Response[] calldata _responses) external
```

### Parameters

| Parameter    | Type                                             | Description                  |
| ------------ | ------------------------------------------------ | ---------------------------- |
| `_responses` | [`Response[]`](/contract-api/evm/types#response) | Array of signature responses |

### Emits

* [`SignatureResponded`](/contract-api/evm/events#signatureresponded) for each response

## getSignatureDeposit

Returns the current deposit amount required for signature requests.

```solidity
function getSignatureDeposit() external view returns (uint256)
```

### Returns

| Type      | Description                    |
| --------- | ------------------------------ |
| `uint256` | Required deposit amount in wei |
