Contracts

Allocrypt deploys the non-custodial router and protocol-owned Safe wallets on Monad (chain 143). First-party portfolio display reads directly from vaults and Pyth; the treasury and admin safes anchor protocol control.

Unaudited

These contracts have not been formally audited. Use at your own risk. Always verify contract addresses on Monadscan before interacting.

Deployed Addresses

PortfolioRouter

The router is a non-custodial deposit router. It accepts a batch of deposit instructions, pulls tokens from the caller, optionally swaps via 0x, and deposits into external vaults. Resulting shares are sent directly to the caller (or a specified receiver) — the router never holds funds between transactions.

Constructor

constructor(address wmon, address treasury, address zeroExAllowanceTarget, address zeroExSwapTarget)

Core method

function deposit(DepositRequest calldata request) external payable

Each DepositRequest specifies a vault type, target, asset, amount, optional swap data, and receiver.

Vault types handled

ERC4626Standard vault interface — calls deposit(assets, receiver). Used for Euler Earn.
UPSHIFTCustom interface — calls deposit(assetIn, amount, receiver). Used for Upshift earnAUSD.
KINTSUNative MON — unwraps WMON, calls deposit{value}(minShares, receiver). Used for Kintsu sMON.
APRIORINative MON — unwraps WMON, calls deposit{value}(assets, receiver). Used for aPriori aprMON.

Native MON handling

For KINTSU and APRIORI vault types, the router unwraps WMON to native MON before calling the LST deposit function (which expects payable calls).

External Vault Addresses

Token Addresses

Infrastructure