> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tiprotocol.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Administrative function specification

> Every administrative function of the TIP token and the vesting contracts, with who can call it and its execution delay. At present only the Governance Safe (2-of-3) can call them.

All administrative functions are called through the AccessManager, and at present only the Governance Safe (2-of-3) can call them. Functions that take a reason code and a supporting-document hash emit those values in an event on every call.

***

## 1. TIP token

| Function | What it does | Who can call | Execution delay |
| - | - | - | - |
| `transfer`, `transferFrom`, `approve` | Standard ERC-20 transfers and approvals | Anyone | None |
| `permit` | EIP-2612 signature-based approval | Anyone | None |
| `burn`, `burnFrom` | Burns the caller's own tokens or tokens it is approved to spend | Holder, approved address | None |
| `freeze(account, duration, reasonCode, docHash)` | Send freeze on an address (1 second to 72 hours) | Compliance | Immediate |
| `unfreeze(account, reasonCode, docHash)` | Lifts a freeze | Compliance | Immediate |
| `protect(account, docHash)` | Permanently designates a protected address and lifts any active freeze (irreversible) | Compliance | Immediate |
| `sealFreeze(docHash)` | Permanently disables the freeze function (irreversible) | Seal | Immediate |
| `isFrozen`, `frozenUntil`, `isProtected`, `freezeSealed` | Freeze status queries | Anyone | None |

***

## 2. Vesting contract

| Function | What it does | Who can call | Execution delay |
| - | - | - | - |
| `release(id)`, `releaseMany(ids)` | Sends amounts whose release time has arrived to the beneficiary | Anyone | None |
| `setTGE(newTgeTime, docHash)` | Sets the allocation's TGE (cannot be earlier than the current time; can be changed until it arrives) | Operations | Immediate |
| `createSchedule`, `createSchedules` | Registers beneficiary schedules within the default terms | Operations | Immediate |
| `modifyTermsBeforeStart` | Modifies the terms of a schedule that has not started (within the default terms) | Operations | Immediate |
| `increaseAmountBeforeStart` | Adds to the amount of a schedule that has not started | Operations | Immediate |
| `extendAfterStart` | Extends the cliff or vesting period of a started schedule (no shortening; the unlocked amount cannot decrease) | Operations | Immediate |
| `reallocateRevoked` | Reallocates revoked lots (no TGE release; terms no faster than the original) | Operations | Immediate |
| `freezeSchedule`, `unfreezeSchedule` | Freezes release of a single schedule (up to 72 hours per freeze) and lifts the freeze | Compliance | Immediate |
| `revoke` | Revokes the not-yet-unlocked portion of a schedule (unlocked tokens stay with the beneficiary) | Funds | 72 hours |
| `changeBeneficiary` | Changes the beneficiary (lost key, legal order) | Funds | 72 hours |
| `burnUnallocated`, `burnRevoked` | Burns unallocated tokens and revoked lots | Funds | 72 hours |
| `setMigrationTarget` | Approves a new vesting version (7-day wait after approval, code hash pinned) | Funds | 72 hours |
| `migrate` | Moves everything in a schedule not yet transferred to the beneficiary to the approved new version | Funds | 72 hours |
| `rescueToken` | Returns tokens other than TIP sent to the contract by mistake | Funds | 72 hours |
| `enableFeature` | Turns a disabled feature back on (not possible for sealed features) | Funds | 72 hours |
| `disableFeature`, `sealFeature` | Disables a feature; seals it permanently | Seal | Immediate |
| `vestedAmount`, `releasableAmount`, `lockedAmount`, `nextReleaseTime`, `releaseTimeline`, `schedulesOf`, `available` | Release, remaining balance and schedule queries | Anyone | None |

***

## 3. Constants

| Constant | Value | Location |
| - | - | - |
| `TOTAL_SUPPLY` | 1,000,000,000 TIP | TIP token |
| `MAX_FREEZE_DURATION` | 72 hours | TIP token, vesting contract |
| `MONTH` | 30 days | Vesting contract |
| `MIGRATION_NOTICE` | 7 days | Vesting contract |
| `MAX_CLIFF_MONTHS` | 120 months | Vesting contract |
| `MAX_VESTING_MONTHS` | 240 months | Vesting contract |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.