> For the complete documentation index, see [llms.txt](https://legacy-docs.aragon.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://legacy-docs.aragon.org/developers/tools/aragonos/smart-contract-references/kernel/kernelproxy.md).

# KernelProxy

## contract KernelProxy

is [IKernelEvents,](/developers/tools/aragonos/smart-contract-references/kernel/ikernelevents.md) [KernelStorage,](/developers/tools/aragonos/smart-contract-references/kernel/kernelstorage.md) [KernelAppIds](/developers/tools/aragonos/smart-contract-references/kernel/kernelappids.md), [KernelNamespaceConstants](/developers/tools/aragonos/smart-contract-references/kernel/kernelnamespaceconstants.md), [IsContract](/developers/tools/aragonos/smart-contract-references/common/iscontract.md), [DepositableDelegateProxy](/developers/tools/aragonos/smart-contract-references/common/depositabledelegateproxy.md)

Source: [contracts/kernel/KernelProxy.sol](https://github.com/aragon/aragonOS/blob/v4.4.0/contracts/kernel/KernelProxy.sol)

## Index

* [fallback](#fallback)
* [implementation](#implementation)
* [proxyType](#proxytype)

## Reference

### Functions

#### **fallback** <a href="#fallback" id="fallback"></a>

`function (IKernel _kernelImpl) public`

***

KernelProxy is a proxy contract to a kernel implementation. The implementation can update the reference, which effectively upgrades the contract.

Parameters:

* `_kernelImpl` - Address of the contract used as implementation for kernel

#### **implementation** <a href="#implementation" id="implementation"></a>

` function`` `` `**`implementation`**`() public view returns (address)`

***

ERC897, the address the proxy would delegate calls to.

Returns:

* address

#### **proxyType** <a href="#proxytype" id="proxytype"></a>

` function`` `` `**`proxyType`**`() public pure returns (uint256)`

***

ERC897, whether it is a forwarding (1) or an upgradeable (2) proxy.

Returns:

* uint256
