---
description: A detailed breakdown of the Harpie smart contract architecture.
---

# Contracts

<figure><img src="https://968617169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx4BnZvpxWqcNAcwPX7lV%2Fuploads%2F2Q0CFE8eiUjsY5HJPgga%2Fimage.png?alt=media&#x26;token=56fabc5f-58e3-45ef-9453-f23e34b8f00c" alt=""><figcaption></figcaption></figure>

The Vault system operates on a two-contract system:

The [transferer](contracts/transferer "mention") contract has the ability to move your tokens to our noncustodial Vault. It cannot transfer your tokens anywhere else.

The [noncustodial-vault](contracts/noncustodial-vault "mention") contract allows you to withdraw tokens that we've transferred. Only you can withdraw your assets out of the noncustodial vault: neither Harpie nor any other entity has the ability to withdraw assets on your behalf.

These contracts were designed to be easily-readable and easily-analyzed for any potential customer.
