# Multisig Signer (/smart-accounts/permissions/signers/multisig)

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



Each key is weighted, so that the signature will pass as long as enough signers with enough weight have signed.

Read [the multisig doc](/advanced/multisig) for more details.

## API [#api]

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

const multisigSigner = await toWeightedECDSASigner(publicClient, {
  config: {
      threshold: 100,
      delay: 0,
      signers: [
          { address: signer1.address, weight: 50 },
          { address: signer2.address, weight: 50 }
      ]
  },
  signers: [signer1, signer2]
})

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