# ECDSA Signer (/smart-accounts/permissions/signers/ecdsa)

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



## API [#api]

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

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

const ecdsaSigner = await toECDSASigner({
  signer,
})

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