Borrow against FACY
Teller pools accept FACY, whose contract reads ArAIstotle by Virtuals, as collateral on Base at up to 20% LTV, lending USDC at 25% APR. Every loan is fixed-term with no margin-call, so a price fall during the loan cannot liquidate your collateral.
| Collateral | Network | LTV | APR |
|---|---|---|---|
| FACY | Base | 20% | 25% |
Pool data read . Rates and LTVs are set per pool and change when operators change them.
The contract calls itself ArAIstotle
The row reads FACY because that is the symbol on 0xfac77f01957ed1b3dd1cbea992199b8f85b6e886. The same contract answers its name query with ArAIstotle by Virtuals, which shares no letters with the ticker in any useful order.
Searching one string will not find the other, so start from the address when you want to confirm what you are holding. The by Virtuals suffix is the naming convention of the Virtuals Protocol launchpad, which issues agent tokens on Base against its own VIRTUAL token.
Forty-five bytes of contract
eth_getCode on the token returns 45 bytes. That is not a token implementation, it is an EIP-1167 minimal proxy: a fixed sequence that copies the incoming call, forwards it by delegatecall to one hard-coded address, and returns whatever comes back.
The address baked into those bytes is 0x9215e9a88c94b9dcad5b02e32cd5cab2a291458b. Every agent token the launchpad issues points at that one implementation, so the logic behind FACY is code shared across the family rather than written for this token.
What a proxy changes for a deposit
Nothing about the mechanics. Balances live in the proxy’s own storage, so the pool holds FACY at the FACY address and the transfer behaves like any other ERC-20 transfer.
What it changes is where you read the source. Looking at the token address shows 45 bytes of forwarding, and the behaviour you want to check is at the implementation. One read of that contract covers every token in the family, which is less work than checking them one at a time.
The loan
Deposit FACY, receive USDC, repay or roll on the due date. The ceiling is 20% at 25% APR over a 30-day term. Supply on the contract is 1,000,000,000 at eighteen decimals. Every loan is fixed-term with no margin-call, so a price fall during the loan cannot liquidate your collateral. Miss the due date and the collateral is forfeit.
PREDI is the other agent token in the table and points at the same implementation.
Frequently asked questions
Both. FACY is the symbol on 0xfac77f01957ed1b3dd1cbea992199b8f85b6e886 and ArAIstotle by Virtuals is the name field on the same contract. Searching one string will not surface the other, so work from the address.
It is an EIP-1167 minimal proxy. Those bytes copy each call and forward it by delegatecall to 0x9215e9a88c94b9dcad5b02e32cd5cab2a291458b, which holds the token logic for the whole family of Virtuals agent tokens.
No. Balances live in the proxy's own storage, so the pool holds FACY at the FACY address and transfers behave like any other ERC-20. The difference is only that the source you want to read sits at the implementation address.
A token issued by the Virtuals Protocol launchpad on Base, which names each one with a 'by Virtuals' suffix. VIRTUAL itself has its own pool and its own page.
USDC on Base, paid to the wallet that signed the borrow, on a 30-day term with the ceiling and rate shown live above.
Open a loan
Connect a wallet, deposit your collateral, and borrow a stablecoin. No credit check, no application.
Go to the borrow tab →No collateral to pledge? Check whether you pre-qualify for a no-collateral personal loan. Soft check, no hard pull.
