# The MANAGER_LAMBDA object The `MANAGER_LAMBDA` is an object exported from the `@taquito/taquito` package that provides a convenient way to create lambda functions in Michelson to interact with the [manager contract](https://gitlab.com/nomadic-labs/mi-cho-coq/blob/master/src/contracts/manager.tz), a multisig contract. The object exposes 4 methods that take different parameters in order to create the corresponding lambda under the hood, so that developers don't have to tinker with Michelson code. The methods are the following: - `removeDelegate`: to remove the current baker to whom the balance of the multisig contract has been delegated - `setDelegate`: to set a new baker as delegate - `transferImplicit`: to transfer a given amount of XTZ to a given implicit account - `transferToContract`: to transfer a given amount of XTZ to a given contract ## The `removeDelegate` method The method: ```typescript MANAGER_LAMBDA.removeDelegate() ``` The Michelson output: ``` DROP ; NIL operation NONE key_hash ; SET_DELEGATE ; CONS ; ``` The method doesn't take any parameter. It produces a list of operations with a single operation in it created by the `SET_DELEGATE` instruction with a value of `None`, which removes the current delegate for the contract. ## The `setDelegate` method The method: ```typescript MANAGER_LAMBDA.setDelegate(key: string) ``` The Michelson output: ``` DROP ; NIL operation ; PUSH key_hash <baker-key_hash> ; SOME ; SET_DELEGATE ; CONS ; ``` The method takes 1 parameter of type `string` whose value is the `key_hash` of the baker address. It produces a list of operations with a single operation in it created by the `SET_DELEGATE` instruction with a value of `Some <baker-key_hash>` where the `<baker-key_hash>` is replaced with the provided string. ## The `transferImplicit` method The method: ```typescript MANAGER_LAMBDA.transferImplicit(key: string, mutez: number) ``` The Michelson output: ``` DROP ; NIL operation ; PUSH key_hash <recipient-address> ; IMPLICIT_ACCOUNT ; PUSH mutez <amount-to-transfer> ; UNIT ; TRANSFER_TOKENS ; CONS ; ``` The method takes 2 parameters: the first one of type `string` whose value is the `key_hash` of the recipient address, the second one of type `number` whose value is the amount of XTZ to be transferred. It produces a list of operations with a single operation in it created by the `TRANSFER_TOKENS` instruction that will transfer the provided amount of XTZ to the provided address. ## The `transferToContract` method The method: ```typescript MANAGER_LAMBDA.transferToContract(key: string, amount: number) ``` The Michelson output: ``` DROP ; NIL operation ; PUSH address <contract-address> ; CONTRACT unit ; IF_NONE { UNIT ; FAILWITH ; } { PUSH mutez <amount-to-transfer> ; UNIT ; TRANSFER_TOKENS ; CONS ; } ``` The method takes 2 parameters: the first one of type `string` whose value is the `key_hash` of the recipient address, the second one of type `number` whose value is the amount of XTZ to be transferred. It produces a list of operations with a single operation in it created by the `TRANSFER_TOKENS` instruction that will transfer the provided amount of XTZ to the provided contract address. The contract must take a parameter of type `unit` (which is the case for the manager contract), this condition is verified by the Michelson code in the lambda. ## Information [Link to the MANAGER_LAMBDA code](https://github.com/ecadlabs/taquito/blob/8933ca696822a727e36c3591f866043d9c3ee239/packages/taquito/src/contract/manager-lambda.ts) ###### tags: `ongoing`