---
updatedAt: 2026-09-01T13:45:01.000Z
agentTools:
  projectIndex: https://docs.utila.io/llms.txt
---

# Utila Co-Signer

The co-signer is a tool integrated into the [Utila CLI](utila-cli) which allows you to sign transactions automatically.

It continuously polls a vault and only acts on transactions that are:

* Awaiting signature
* Designated to the authenticated service account

Transfers that you create in the Utila console are not sent to the co-signer. Create them through the API instead.

A single service account can both initiate transactions and sign them. You do not need two accounts.

Check that a running co-signer is connected under **Vault Settings → API → Co-signers**.

## Modes of operation

The co-signer has two modes. Pick **one** when you start it.

### Sign all transactions

Automatically signs all transactions designated to the service account. Use this for a first test.

### Webhook

Forwards each designated transaction to a URL you provide. Your service replies whether the co-signer should sign or cancel.

Do not confuse this with [Event Webhooks](https://docs.utila.io/reference/webhooks) in the console. Those notify your app of vault events. The co-signer webhook only decides signing.

If the webhook is unreachable, times out, or returns a status other than 200, the co-signer does not sign and does not cancel. The transaction stays pending.

## Setting up the co-signer

Ready to try it out?

* Follow the [Device and Key Shares Setup Guide](https://docs.utila.io/reference/cli-device-and-key-shares-setup-guide) to set up a device and key shares.
* Follow the [Co-signer Setup Guide](https://docs.utila.io/reference/cosigner-setup-guide) to configure your co-signer and start signing automatically.

## Related

* [Utila CLI](https://docs.utila.io/reference/utila-cli): install the CLI
* [Creating a Service Account](https://docs.utila.io/reference/set-up-a-service-account)
* [CLI Authentication](https://docs.utila.io/reference/cli-authentication)