Deployed Contracts¶
Machine-readable contract directory
For agents and tooling that need every address in TRON Base58 + EVM 0x-Hex + TRON-internal 41-Hex form, download contracts.json. The file is structured as networks.{mainnet,nile}.{comptroller,governance,price_oracle,jtokens,interest_rate_models,strx}, with each address record carrying base58 / hex_evm / hex_tron / tronscan fields. The tables below show Base58 only for readability; use the JSON for cross-chain bridges, EVM-side tooling, Etherscan-like indexers, and TronGrid calls that require 41-prefixed hex.
Machine-readable ABIs
Every contract referenced on this page has a downloadable JSON ABI under abis/:
| Contract | ABI |
|---|---|
jToken (CErc20) — mint / borrow / repayBorrow / redeem / liquidateBorrow |
abis/jtoken.json |
jToken — TRX-specific mint() payable |
abis/jtrx-mint.json |
jToken — TRX-specific repayBorrow() payable |
abis/jtrx-repay.json |
| Comptroller / Unitroller | abis/comptroller.json |
| PriceOracle | abis/price-oracle.json |
| TRC20 (generic) | abis/trc20.json |
| GovernorAlpha / Bravo | abis/governor-alpha.json |
| WJST (voting wrapper) | abis/wjst.json |
| Poly helper | abis/poly.json |
| EnergyRental market | abis/energy-market.json |
| EnergyRateModel | abis/energy-rate-model.json |
| sTRX | abis/strx.json |
| InterestRateModel (jump-rate / whitepaper) | abis/interest-rate-model.json |
These are sourced from the same definitions the JustLend MCP server uses at runtime — see src/core/abis.ts for the upstream TypeScript form.
Network: TRON Mainnet (unless noted)
Everything in the main tables below is deployed on TRON Mainnet (Chain ID 0x2b6653dc). For Nile testnet addresses see the Nile Testnet section at the bottom of this page or the nile block of contracts.json.
Decimals / precision
The JustLend DAO architecture treats every token amount in its underlying's smallest unit. Always read decimals() on the underlying TRC20 before constructing mint, borrow, repayBorrow, or redeemUnderlying amounts. Common cases: TRX/USDT/USDC = 6, USDD/ETH = 18, BTC/WBTC = 8. jToken amounts (redeem, transfer) use 8 decimals regardless of the underlying. For the full enumeration and the units rationale, see Glossary → jToken decimals and Common Pitfalls #5.
Address formats¶
TRON addresses appear in three equivalent formats. Human-facing tables on this page use Base58; machine consumers should use contracts.json for all three forms.
| Format | Example for Unitroller | Use cases |
|---|---|---|
| Base58 | TGjYzgCyPobsNS9n6WcbdLVR9dH7mWqFx7 |
Wallets, Tronscan, TronWeb display, user prompts |
| EVM 0x-Hex | 0x4a33bf2666f2e75f3d6ad3b9ad316685d5c668d4 |
EVM-side tooling, bridges, indexers, byte-address comparisons |
| TRON 41-Hex | 0x414a33bf2666f2e75f3d6ad3b9ad316685d5c668d4 |
TronGrid / TronWeb low-level APIs that expect TRON-internal hex |
Supply and Borrow Market — Core¶
| Component | Contract | Address | Tronscan |
|---|---|---|---|
| Comptroller (proxy) | Unitroller |
TGjYzgCyPobsNS9n6WcbdLVR9dH7mWqFx7 |
Contract |
| Comptroller (impl) | Comptroller |
TB23wYojvAsSx6gR8ebHiBqwSeABiBMPAr |
Contract |
The entrypoint that users and contracts call is Unitroller (the proxy). The implementation address rotates with upgrades.
Supply and Borrow Market — jToken Markets¶
The address users interact with for mint/borrow/repayBorrow/redeem/liquidateBorrow is the CErc20Delegator (proxy). The CErc20Delegate address is the implementation behind it.
Legacy markets (marked (legacy)) — policy + support window
Rows tagged (legacy) — jUSDCOLD, jUSDDOLD, jBUSDOLD, jSUNOLD, jUSDJ, jWBTT — have been closed to new supply and borrow at the dApp / policy layer.
What still works on a legacy market:
- Read-only queries against the contract (
balanceOf,borrowBalanceCurrent,exchangeRateCurrent, etc.) — unchanged forever. - Unwinding existing positions:
repayBorrow,redeem,redeemUnderlying,liquidateBorrow. - The underlying TRC20 of the legacy market is unaffected — only the JustLend market is frozen.
What does NOT work:
- The dApp UI suppresses these markets from the supply / borrow lists.
- New deposits are operationally discouraged; programmatic callers SHOULD filter
status == "active"fromcontracts.jsonand avoid routing new flow to legacy markets even though amint()call would technically succeed at the contract level.
Support window. There is no announced sunset date for legacy contracts. They remain live and queryable indefinitely. Addresses are never reused; the same delegator address always refers to the same market. JustLend has not committed to a deprecation timeline — treat "legacy" as "supply/borrow frozen, read forever."
For the most up-to-date status table, see apis.md §2 or filter contracts.json by status.
ETH / ETHB display-name swap
The JustLend dApp UI labels two markets with renamed legends:
- The market with delegator
TR7BUFRQeq1w5jAZf1FKx85SHuX6PfMqsV(this doc'sjETHrow) is now displayed in the dApp as "ETH" (formerly "ETHOLD"). Underlying TRC20:THb4CqiFdwNHsWsQCs4JhzwjMWys4aqCbF. - The market with delegator
TWBxQMb6RD3qmkXUXpNwVCYbL8SHNreru6(this doc'sjETHBrow) is now displayed in the dApp as "ETHB" (formerly "ETH"). Underlying TRC20:TRFe3hT5oYhjSZ6f3ji5FJ7YCfrkWnHRvh.
The on-chain addresses are unchanged — only the dApp display names swapped.
Interest Rate Models¶
| Model | Type | Address | Tronscan |
|---|---|---|---|
| WhitePaperModelTRX | WhitePaperInterestRateModel |
TF8B4iysAGfrssdQhMJGYsdd9SZoxGsH7M |
Contract |
| WhitePaperModelBTC | WhitePaperInterestRateModel |
TYJi9q4qLQWoBiKmMQY3Mn81tmhw7SeCmh |
Contract |
| jumpRateTRX | JumpRateModelV2 |
TMca13trZmVvVttrGWJyUSm33qZdohDDuh |
Contract |
| jumpRateUSDDOLD | JumpRateModelV2 |
TDoB7y9HHj6bXTwEe6BhfAkdETjQR2He6u |
Contract |
| jumpRateUSDT | JumpRateModelV2 |
TTetZxp98wcPaciyBMHYvQkS735RZ3tyXY |
Contract |
| jumpRatewstUSDT | JumpRateModelV2 |
TPqKsaTnSKEU3aGHanpVFNU3cE8SmJsAYz |
Contract |
| jumpRatesTRX | JumpRateModelV2 |
TW4fpkc98kzVbdiPhutCg2uivwVJ9MDa2P |
Contract |
| jumpRateSUN | JumpRateModelV2 |
THCVC3DHgZ5qmUcJPutw7TrMMfj1h2bvkZ |
Contract |
| jumpRateBTT | JumpRateModelV2 |
TQ9zMkrqgej7GjLdMrpNuURozg8J2fSXsW |
Contract |
| jumpRateNFT | JumpRateModelV2 |
TBE9tkWYdZPEHLNeKC6Xn44YFLpieiM3xq |
Contract |
| jumpRateJST | JumpRateModelV2 |
TMNXjQTa8x4wNHBa3X647KRnkRQpSuXBRT |
Contract |
| jumpRateWIN | JumpRateModelV2 |
TBtChPo34CGJkb1QVEwPhxS8HQE2Xp7ir2 |
Contract |
| jumpRateUSDJ | JumpRateModelV2 |
TLScd7kpWnKADtH7ZXKzrJHAxJUnjiiExq |
Contract |
| jumpRateUSDC | JumpRateModelV2 |
TDECE4PZFEkmTyFk9sJMya9PY99BapHpyP |
Contract |
| jumpRateTUSD | JumpRateModelV2 |
TLY3wRNGrQpJCZrYKu9VjntMj2kNxisAL2 |
Contract |
| jumpRateBTC | JumpRateModelV2 |
TYJi9q4qLQWoBiKmMQY3Mn81tmhw7SeCmh |
Contract |
| jumpRateETHB | JumpRateModelV2 |
TD5wmR7NfBM2JdSGSTTq1MgMARX2k5KE2b |
Contract |
| jumpRateWBTT | JumpRateModelV2 |
TJAfCJdJZa44pG5adQGLMLh27hJqPeLxod |
Contract |
| jumpRateBUSD | JumpRateModelV2 |
TUSGt1WAYeJSV94M5muFi2KvtE6EquZPUC |
Contract |
| jumpRateSUNOLD | JumpRateModelV2 |
TK7WVRz34wUVRCpsgbW1wUCPmh5bSnCqg1 |
Contract |
| jumpRateETH | JumpRateModelV2 |
TCiKn6EFBsNrNCFQXWaEuAxr8Su3y4Rx9D |
Contract |
| jumpRateUSD1 | JumpRateModelV2 |
TKgX5vEds8UW8bd5fSDGHpTT4UwmVz4yPS |
Contract |
See Interest Rate Model for the formulas backing these contracts.
Price Oracle¶
| Component | Contract | Address | Tronscan |
|---|---|---|---|
| Oracle Proxy | PriceOracleProxy |
TCKp2AzuhzV4B4Ahx1ej4mvQgHZ1kH7F7k |
Contract |
| Oracle (impl) | PriceOracle |
TMiNCmvD3zdsv6mk7niBU6NPBzVNjYMQTV |
Contract / Code |
Prices are denominated in sun (10⁻⁶ TRX), scaled by 10^(tokenDecimal − 6). See Price Oracle.
Governance¶
| Component | Contract | Address | Tronscan |
|---|---|---|---|
| Governor (proxy / entrypoint) | GovernorBravoDelegator |
TEqiF5JbhDPD77yjEfnEMncGRZNDt2uogD |
Contract |
| Governor (impl) | GovernorBravoDelegate |
TCiQTkxhzwSeXhRsNdHCvrxHRAvpjQn5Dt |
Contract |
| Time-lock | Timelock |
TRWNvb15NmfNKNLhQpxefFz7cNjrYjEw7x |
Contract |
| JST token | JST |
TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9 |
Token20 |
| WJST (voting) | WJST |
TXk9LnTnLN7oH96H3sKxJayMxLxR9M4ZD6 |
Contract / Code |
See Governance for the proposal lifecycle and voting flow.
Staked TRX¶
| Component | Contract | Address | Tronscan |
|---|---|---|---|
| StakedTRX | sTRX |
TU3kjFuhtEo42tsCBtfYUAZxoqQ4yuSLQ5 |
Token20 |
See Staked TRX for the contract reference.
Energy Rental¶
| Component | Contract | Address | Tronscan |
|---|---|---|---|
| EnergyRental | EnergyRental |
TU2MJ5Veik1LRAgjeSzEdvmDYx7mefJZvd |
Contract |
See Energy Rental for the contract reference.
Nile Testnet¶
Testnet — not the production protocol
Use these addresses only for development and integration testing. Some Nile contracts are placeholder/stub addresses — when in doubt, call get_supported_networks / get_supported_markets on the JustLend MCP server for the live runtime view, or consult the chains.ts Nile section.
| Component | Contract | Address |
|---|---|---|
| Comptroller (proxy / entrypoint) | Unitroller |
TJUCStq3WqfKqZLuZje5v7z6Ua6iBry1P6 |
| Governance | GovernorBravoDelegator |
TYCNENqt2oJK7eiwubi6YXXt8RHR1BnzBs |
| JST token (testnet) | JST |
TJqk3ChKSjmpoNm3gaqSEatNsueD37NGDK |
| WJST (voting wrapper, testnet) | WJST |
TCxA1eNhsAV3gvUwLjLtREW9f775V4h1h7 |
| StakedTRX proxy (testnet) | sTRX |
TZ8du1HkatTWDbS6FLZei4dQfjfpSm9mxp |
The Nile testnet currently exposes a subset of the mainnet jToken markets plus four QA-only markets (jUSD1test, jETHQA, jBUSDqa1, jBUSDqa2). For the complete Nile jToken list with delegator and underlying addresses, see contracts.json → networks.nile or the MCP server chains.ts.
Configuring clients for Nile¶
# JustLend Skills / MCP server
export NETWORK=nile
// TronWeb
const tronWeb = new TronWeb({
fullHost: 'https://nile.trongrid.io',
// ...
});
Tronscan testnet explorer: https://nile.tronscan.org.