# ECDSA Signer (/sdk/v5_3_x/permissions/signers/ecdsa)

> For the complete documentation index, see [llms.txt](/llms.txt)



<VersionWarning version="5.3.x" />

The ECDSA signer signs with a single ECDSA key, specifically with the `secp256k1` curve, which is the same algorithm that EOAs use.

## API [#api]

```typescript
import { toECDSASigner } from "@zerodev/permissions/signers"

// Use any Viem account
const signer = privateKeyToAccount(generatePrivateKey())

const ecdsaSigner = toECDSASigner({
  signer,
})

const validator = toPermissionValidator(publicClient, {
  entryPoint,
  kernelVersion,
  signer: ecdsaSigner,
  policies: [
    // ...
  ],
})
```
