Our contracts
The two contracts Tamias deployed, what each can and cannot do, and where to read their source.
Tamias has deployed two contracts of its own. A batch you sign may call one of them, and turning on auto-pay gives the other a standing permission, so both are listed here with their source.
Each has the same address on every chain. They were deployed with CREATE2 from a fixed salt, so the address comes from the code itself. A contract at that address with different code cannot exist.
Neither contract has an owner, an admin, or a way to be upgraded. What is deployed is what runs.
Bounds
0xD13E36d3E9bFCAD47B6eEa4CEC1b1F25Eef6e44e
What it does. When a batch moves an amount that can change before it executes, such as a swap, Tamias adds one more call to the end of the batch: a call to Bounds with the balances the batch is allowed to leave behind, and sometimes a deadline. If the batch lands outside those numbers, or runs after the deadline, Bounds reverts and the whole batch is undone. The numbers are part of what the owners sign.
What it can do. Read a balance, compare it to a number, and revert.
What it cannot do. It holds no funds and has no permissions on your Safe. It is called like any other contract, never by delegatecall, so it never acts as your Safe. It cannot move, approve or change anything. The worst it can do is stop a batch whose outcome fell outside what was signed.
| Chain | Source |
|---|---|
| Ethereum | etherscan.io |
| Arbitrum | arbiscan.io |
| Base | basescan.org |
| Berachain | berascan.com |
| Robinhood Chain | robin.etherscan.io |
TamiasCollector
0x8b5d2A4d4e53A2EdF8F1605282153E4b77473c24
What it does. It collects the Tamias subscription from a Safe that has turned on auto-pay. Turning auto-pay on is one batch your owners sign. It enables Safe's own Allowance Module if it is not already on, adds this contract as a delegate, and gives it an allowance of the subscription price, in the chain's billing stablecoin, every 28 days. On payday Tamias calls the collector, and the collector takes that allowance.
What it can do. Take the whole allowance for the current period, once, and send it to the Tamias treasury Safe.
What it cannot do.
- Pay anyone but Tamias. The recipient is written into the code:
0xccCa36Cb38456e67a25A9c9037a394E3a9ba7ED9, the Tamias treasury Safe. There is no setting that changes it, and no owner who could. - Take more than you allowed. The amount and the 28 days are set by your owners in the Allowance Module, which enforces them. The collector reads them and cannot change them.
- Take twice in one period. It refuses an allowance that is already partly spent, and takes all of it or nothing.
- Take any other token. The allowance is for one token, and the module refuses any other.
- Use any other module. It works only with the two official deployments of Safe's Allowance Module (source).
Anyone can call the collector, not only Tamias. The most a stranger can do with it is make you pay this period's subscription early, to us, which is credited like any other payment.
Turning it off. "Turn off" on the Billing page proposes one call that removes the collector as a delegate, together with its allowance. After your owners sign it, the collector can take nothing. You can also do it in the Safe app without Tamias: see turning auto-pay off.
| Chain | Source |
|---|---|
| Ethereum | etherscan.io |
| Arbitrum | arbiscan.io |
| Base | basescan.org |
| Berachain | berascan.com |
| Robinhood Chain | robin.etherscan.io |
Contracts we use but did not write
Automating a workflow installs Zodiac Roles, by Gnosis Guild, on your Safe. Its addresses, audits and source are listed on that page. Tamias deployed none of it, and has no say over it once it is on your Safe.
Checking an address yourself
When a batch names one of these contracts, compare the address in your wallet or in the Safe app with the one on this page. It is the same on every chain, so there is only one to remember for each. Anything else claiming to be a Tamias contract is not one.