Roles and management
How Tintero vaults are managed
Each Tintero pool is an ERC4626 vault that receives a ERC20 tokens in exchange for ERC20 shares, then it allocates these assets towards funding Loan contracts. Delegated yield managers can access the pooled assets to maximize the yield generated by the pool in case there are no active loans.
How access is managed
Each Tintero pool has a set of roles that restricts interactions with the protocol. These interactions are:
- Deposit to a vault: Only accredited investors can deposit assets into a vault (or mint shares).
- Split payments into tranches: Only the vault manager can split payments into tranches.
- Fund a loan: Only the vault manager can fund a loan.
- Repossess a loan: Only the vault manager can repossess a loan after it has defaulted.
- Upgrade a loan: Only the vault manager can upgrade a loan to a new version after terms have been renegotiated.
- Ask for delegation: Only the delegated yield manager can ask for delegation of the vault’s assets.
Any other interaction such as withdrawing assets from a vault, creating loans out of a vault (but not funding them!), scheduling collateralized payments or transferring shares remains permissionless.
These roles are managed by an Access Manager contract that is deployed for all contracts in the Tintero protocol. This contract’s admin can grant and revoke roles to any address and it’s publicly inspectable on-chain.
Roles
Accredited Investor
An accredited investor is a person or entity who agreed to the terms and conditions of the Tintero protocol and has passed the KYC/AML checks. They can deposit assets into a vault and mint shares in exchange.
Vault Manager
The vault manager is a person or entity in charge of managing the vault’s assets for the purpose of originating loans. They inspect each request loan that goes through the vault and typically have access to the information of the underlying collateral assets and the beneficiary’s credit score.
A vault manager can:
- Split payments into tranches
- Fund a loan
- Repossess a loan
- Upgrade a loan
Delegated Yield Manager
The delegated yield manager is a specialized entity that offers capital management services to the vault’s assets. They can ask for delegation of the vault’s assets with a 12-hour delay that allows the Access Manager admin to cancel the delegation if needed.
Role References
- UPGRADER: 4853719658622747636 (
uint64(bytes8(keccak256("PlumaaID.UPGRADER")))
) - PROVENANCE_AUTHORIZER: 12236269664351332516 (
uint64(bytes8(keccak256("PlumaaID.PROVENANCE_AUTHORIZER")))
) - WITNESS_SETTER: 5639234726794575539 (
uint64(bytes8(keccak256("PlumaaID.WITNESS_SETTER")))
) - TINTERO_MANAGER_USDC_V01: 4691003184040892619 (
uint64(bytes8(keccak256("PlumaaID.TINTERO_MANAGER_USDC_V01")))
) - TINTERO_DELEGATE_USDC_V01: 13580011560138984285 (
uint64(bytes8(keccak256("PlumaaID.TINTERO_DELEGATE_USDC_V01")))
) - TINTERO_INVESTOR: 5986081590623214882 (
uint64(bytes8(keccak256("PlumaaID.TINTERO_INVESTOR")))
)
Role mapping
Role | Function signature | Selector | Target contract |
---|---|---|---|
UPGRADER | upgradeToAndCall(address,bytes) | 4f1ef286 | 0x0000c908D1104caD2867Ec2A8Bb178D78C9bAaaa |
WITNESS_SETTER | setWitness(address) | 0bc14f8b | 0x0000c908D1104caD2867Ec2A8Bb178D78C9bAaaa |
TINTERO_MANAGER_USDC_V01 | pushPayments(address,uint256[],(uint256,uint48,uint32,uint32,uint32,uint32)[]) | 69b24c8a | TBD |
TINTERO_MANAGER_USDC_V01 | pushTranches(address,uint96[],address[]) | 1589cd5e | TBD |
TINTERO_MANAGER_USDC_V01 | fundN(address,uint256) | ae527b8a | TBD |
TINTERO_MANAGER_USDC_V01 | repossess(address,uint256,uint256,address) | d3b500cf | TBD |
TINTERO_MANAGER_USDC_V01 | upgradeLoan(address,uint256,uint256,address) | c3aacfe3 | TBD |
TINTERO_DELEGATE_USDC_V01 | askDelegation(uint256) | 30adbaff | TBD |
TINTERO_INVESTOR | deposit(uint256,address) | 6e553f65 | TBD |
TINTERO_INVESTOR | mint(uint256,address) | 94bf804d | TBD |
Role members
Role | Address | Execution Delay |
---|---|---|
PROVENANCE_AUTHORIZER | 0xD4FAa2Bcdd1A438C9E69699166eDc92E65954ED7 | 0 |
UPGRADER | 0x00fA8957dC3D2f6081360056bf2f6d4b5f1a49aa | 259200 (3 days) |
WITNESS_SETTER | 0x00fA8957dC3D2f6081360056bf2f6d4b5f1a49aa | 0 |
TINTERO_MANAGER_USDC_V01 | TBD | 0 |
TINTERO_DELEGATE_USDC_V01 | TBD | 32200 (12 hrs) |
TINTERO_INVESTOR | TBD | 0 |