Contract Analysis
DISCLAIMER // NFA // DYOR
This analysis is based on decompiled bytecode and 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, but 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
Analysis Date: 2025-12-26
Metadata
Primary Contract
| PROPERTY | VALUE |
|---|---|
| Contract Address | 0xe88BAab9192a3Cb2C0a50182AB911506e5aDc304 (etherscan) |
| Network | Ethereum Mainnet |
| Contract Type | Standalone ERC-20 Token |
| Deployment Date | 2025-12-26 19:41:11 UTC |
| Deployment Block | 24,098,958 |
| Contract Creator | 0x9c146431E3b7300FAaABC625Eeee3c7ec882A0DC (etherscan) |
| Creation TX | 0xf9b0e3fa2be36dfb405ae5d51ad439c3d5a95c09d41d40fe4db303af1e1a2bf2 (etherscan) |
| Compiler Version | Solidity 0.8.33 |
| Total Functions | 18 |
| External Contract Dependencies | 0 |
| Upgrade Mechanism | ☑ None - Not Upgradable |
| Verification Status | ☒ Source code not verified on Etherscan |
| Audit Status | ☒ Unknown (contract not verified) |
Token Metrics
| PROPERTY | VALUE |
|---|---|
| Token Name | Sentinel |
| Symbol | SENT |
| Decimals | 18 |
| Total Supply | 3,911,241,716 SENT |
| Presale Allocation | 3,492,180,104 SENT (89.29%) |
| Owner Allocation | 419,061,612 SENT (10.71%) |
Related Addresses
| TYPE | ADDRESS | NOTES |
|---|---|---|
| Owner | 0x9c146431E3b7300FAaABC625Eeee3c7ec882A0DC (etherscan) |
Full admin control, deployed contract |
| Presale Wallet | 0xEa35cde1d1ac4e36Ca519dB0b38Fe28A2C477eFE (etherscan) |
Received 89.29% of supply at initialization |
| Presale Contract | 0x8d33666c83f7f17a1b8dc0e950d8ff2e7e37c563 (etherscan) |
Original presale contract (see SENT-Presale analysis) |
Executive Summary
The Sentinel (SENT) token is a standard ERC20 token deployed on Ethereum Mainnet. It appears to be the token for the Sentinel project whose presale was previously analyzed. The contract uses a deferred minting pattern where the constructor sets up the token metadata but does not mint tokens. A separate initializeMinting() function is called post-deployment to create the token supply and distribute it.
The token distribution follows a predetermined split:
- 89.29% to the presale wallet for distribution to presale participants
- 10.71% to the owner/team
The contract includes standard ERC-20 functionality plus a burn function allowing any holder to destroy their tokens. Ownership follows the OpenZeppelin Ownable pattern with transfer and renounce capabilities.
Architecture
graph TD
subgraph "Token Contract"
SENT["SENT Token<br/>0xe88BAab9...5aDc304"]
end
subgraph "Key Addresses"
Owner["Owner<br/>0x9c146431...82A0DC"]
PresaleWallet["Presale Wallet<br/>0xEa35cde1...77eFE"]
end
subgraph "Related Contracts"
PresaleContract["Presale Contract<br/>0x8d33666c...37c563"]
end
subgraph "Token Holders"
Users["Token Holders"]
end
Owner -->|deployed & initialized| SENT
Owner -->|received 10.71%| SENT
SENT -->|minted 89.29%| PresaleWallet
PresaleWallet -->|distributes tokens| Users
PresaleContract -.->|tracked purchases| PresaleWallet
style SENT fill:#fff4e1
style Owner fill:#ffe1e1
style PresaleWallet fill:#e1ffe1
style Users fill:#e1f5ff
System Overview
This is a standalone ERC20 token contract implementing:
- Standard ERC-20 token transfers and approvals
- A deferred minting initialization pattern
- Public burn functionality (Deflationary capability)
- Single-owner administration
Key characteristics:
- ☑ Tokens are Fungible Token
- ☑ 18 decimal places (standard)
- ☑ Total supply is fixed at initialization (no additional minting possible)
- ☑ Burns reduce Circulating Supply permanently
Design Patterns Used
- ERC20: Standard fungible token interface with transfer, approve, transferFrom, balanceOf, and allowance functions
- Ownable: OpenZeppelin ownership pattern with single admin, transfer, and renounce capabilities
- Deferred Minting: Token supply is not created in constructor but via a separate initialization function that can only be called once
Access Control
Roles & Permissions
| ROLE | ASSIGNED BY | REVOKABLE | CALL COUNT |
|---|---|---|---|
| Owner | Constructor, transferOwnership | Yes - via renounce/transfer | Single holder |
| Token Holder | Receiving tokens | N/A | Unlimited |
Permission Matrix
| FUNCTION | OWNER | TOKEN HOLDER | ANYONE |
|---|---|---|---|
| transfer | ☑ | ☑ | ☒ |
| approve | ☑ | ☑ | ☒ |
| transferFrom | ☑ | ☑ | ☒ |
| burn | ☑ | ☑ | ☒ |
| initializeMinting | ☑ | ☒ | ☒ |
| transferOwnership | ☑ | ☒ | ☒ |
| renounceOwnership | ☑ | ☒ | ☒ |
| View functions | ☑ | ☑ | ☑ |
Time Locks & Delays
| ACTION | TIME LOCK | CAN CANCEL | PURPOSE |
|---|---|---|---|
| Transfer Ownership | None | N/A | ☒ Immediate, no protection |
| Renounce Ownership | None | N/A | ☒ Immediate, irreversible |
Economic Model
Token Distribution
%%{init: {'theme': 'base', 'themeVariables': {'pie1': '#2563eb', 'pie2': '#f59e0b'}}}%%
pie title Token Distribution at Initialization
"Presale Wallet (89.29%)" : 89.29
"Owner/Team (10.71%)" : 10.71
Distribution Breakdown
| RECIPIENT | AMOUNT | PERCENTAGE | PURPOSE |
|---|---|---|---|
| Presale Wallet | 3,492,180,104 SENT | 89.29% | Distribution to presale participants |
| Owner | 419,061,612 SENT | 10.71% | Team allocation, liquidity, etc. |
| Total | 3,911,241,716 SENT | 100% | Fixed supply |
Token Lifecycle
flowchart LR
Init["initializeMinting()"]
Presale["Presale Wallet"]
Team["Owner/Team"]
Holders["Token Holders"]
Burned["Permanently Destroyed"]
Init -->|89.29%| Presale
Init -->|10.71%| Team
Presale -->|distribute| Holders
Team -->|transfer| Holders
Holders -->|trade| Holders
Holders -->|burn| Burned
style Init fill:#fff4e1
style Presale fill:#e1ffe1
style Team fill:#ffe1e1
style Holders fill:#e1f5ff
style Burned fill:#808080
Economic Invariants
- TOTAL_SUPPLY is set once during initialization and stored immutably
totalSupply()decreases when tokens are burned- No minting capability exists after initialization
- Burns are permanent and irreversible
Summary of Observations
Purpose
The SENT token is the ERC20 token for the Sentinel project. It was created to fulfill obligations from the Sentinel presale, where participants purchased future tokens using ETH.
Key Findings
Token Distribution:
- Nearly 90% of tokens went to the presale wallet for distribution to participants
- Approximately 10.7% was retained by the owner (team allocation)
Functionality:
- Standard ERC-20 with no unusual transfer restrictions
- Burn function allows any holder to destroy their tokens
- No blacklist, pause, or fee mechanisms observed
Trust Model:
- Single owner control (not a Multisig)
- No Timelock on admin functions
- Source code is not verified on Etherscan
Strengths
- ☑ Simple, standard ERC-20 implementation
- ☑ No backdoor minting capability after initialization
- ☑ Burns are transparent and verifiable
- ☑ No transfer fees or restrictions
- ☑ Fixed total supply (deflationary via burns only)
Concerns
- ☒ Source code not verified on Etherscan
- ☒ Single owner (EOA, not Multisig)
- ☒ No Timelock on ownership transfer
- ☒ Owner can renounce ownership making contract permanently ownerless
This analysis was performed for educational purposes and should not be considered an official security audit or financial advice. Users should conduct their own research and consider consulting security professionals before interacting with unverified contracts.
References
| RESOURCE | NOTES |
|---|---|
| Etherscan Contract Page | Primary source for bytecode and transaction data |
| Foundry Book - Cast | Tool used for contract interaction and bytecode analysis |
| SENT-Presale Analysis | Related presale contract analysis |
| OpenZeppelin ERC20 | Reference implementation patterns |
Changelog
| DATE | AUTHOR | NOTES |
|---|---|---|
| 2025-12-26 | Artificial. | Generated by robots. |
| 2026-01-08 | Denizen. | Reviewed, edited, and curated by humans. |