Skip to content

Methodology

DISCLAIMER // NFA // DYOR

This analysis is based on observations of the contract behavior. We are not smart contract security experts. This document aims to explain what the contract appears to do based on the code. It should not be considered a comprehensive security audit or financial advice. Always verify critical information independently and consult with blockchain security professionals for important decisions.

⊙ generated by robots | curated by humans

METADATA
Contract Address 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 (etherscan)
Network Ethereum Mainnet
Analysis Date 2026-01-24

Overview

This contract's source code is not verified on Etherscan, requiring a pure bytecode analysis approach. No access to original Solidity source, no compiler-generated comments or documentation, and no developer-provided function names or parameter descriptions. Contract behavior was reconstructed entirely from opcodes, transaction patterns, and on-chain queries.

The analysis followed a 6-phase methodology: initial reconnaissance, function identification, transaction analysis, storage inference, risk assessment, and documentation synthesis.


Thought Process

%%{init: {'theme': 'base'}}%%
mindmap
  root((Day Percent Manager<br/>Analysis))
    Phase 1: Reconnaissance
      Fetch bytecode
      Check proxy patterns
      Identify owner
      Cross-reference ecosystem
    Phase 2: Functions
      Extract selectors
      4byte directory lookup
      Bytecode pattern analysis
      Transaction input decoding
    Phase 3: Transactions
      Timeline reconstruction
      Function call frequency
      Configuration window
      Activity patterns
    Phase 4: Storage
      Slot scanning
      Mapping calculation
      Struct inference
      Value verification
    Phase 5: Risks
      Access control gaps
      Data integrity issues
      State management
      External dependencies
    Phase 6: Documentation
      Contract analysis
      Functions catalog
      Storage layout
      Risk assessment

Verification Guide

The analysis used Foundry's cast command for on-chain queries and the Etherscan API v2 for transaction history. All findings can be independently reproduced using the commands documented below.


External Resources


Commandline Tools

Tip

Commands below use cast from the Foundry Toolkit. To run the commands below, you must set the RPC URL environment variable:

export ETH_RPC_URL=https://eth.llamarpc.com

Verify Contract Type (Standalone vs Proxy)

Check EIP-1967 storage slots to determine if the contract is a proxy or standalone deployment.

# CHECK EIP-1967 IMPLEMENTATION SLOT
cast storage 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 \
  0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc


# CHECK EIP-1967 ADMIN SLOT
cast storage 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 \
  0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103

Verify Contract Owner

Confirm the current owner address via both direct storage read and function call.

# READ OWNER FROM STORAGE SLOT 0
cast storage 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 0


# QUERY OWNER VIA FUNCTION CALL
cast call 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 "owner()"

Query Contract Constants

Read the immutable configuration boundaries (MAX_DAY and MAX_PERCENT).

# GET MAX_DAY VALUE
cast call 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 "MAX_DAY()"


# GET MAX_PERCENT VALUE
cast call 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 "MAX_PERCENT()"

Verify Day Schedule Configuration

Query individual day configurations and verify against storage slot calculations.

# QUERY DAY 1 INFO VIA FUNCTION
cast call 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 "dayInfo(uint8)" 1


# CALCULATE DAY 1 STORAGE SLOT
cast index uint8 1 1


# READ DAY 1 PERCENT FROM STORAGE
cast storage 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 \
  0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d


# READ DAY 1 AMOUNT FROM STORAGE (SLOT + 1)
cast storage 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 \
  0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7e

Query Day Ranges

Use range functions to retrieve multiple days in a single call.

# GET PERCENT RANGE FOR DAYS 1-7
cast call 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 "getPercentRange(uint8,uint8)" 1 7


# GET AMOUNT RANGE FOR DAYS 1-7
cast call 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 "getAmountRange(uint8,uint8)" 1 7

Fetch Transaction History

Retrieve all transactions to the contract via Etherscan API v2.

# QUERY TRANSACTION LIST VIA ETHERSCAN API V2
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=account&action=txlist&address=0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3&startblock=0&endblock=99999999&sort=asc&apikey=$ETHERSCAN_API_KEY"

Fetch Contract Bytecode

Retrieve and measure the deployed runtime bytecode.

# FETCH RUNTIME BYTECODE
cast code 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3


# MEASURE BYTECODE SIZE
cast code 0x1aa0c77d207cd2e20dc00523ee0511ac6514aeb3 | wc -c

Token Cost Breakdown

PHASE DESCRIPTION TOKENS
Phase 0 Contract Acquisition 2 tok
Phase 1 Initial Reconnaissance 5 tok
Phase 2 Function Identification 8 tok
Phase 3 Transaction Analysis 6 tok
Phase 4 Storage Inference 7 tok
Phase 5 Risk Assessment 12 tok
Phase 6 Documentation Synthesis 25 tok
TOTAL Complete Contract Analysis 65 tok

Note: Token costs are estimates based on typical conversation lengths and complexity. Actual consumption may vary by ±10-15% depending on API responses, iterative refinement, and verification steps.