Token Axelar Wrapped USDC

 

Overview [ERC-20]

Price
$1.00 @ 0.000493 Eth (-0.16%)
Fully Diluted Market Cap
Max Total Supply:
1,763,522.007632 axlUSDC

Holders:
19,430

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Axelar delivers secure cross-chain communication for Web3, enabling you to build Interchain dApps that grow beyond a single chain.

# Exchange Pair Price  24H Volume % Volume
1
Pancakeswap V3 (BSC)
0X4268B8F0B87B6EAE5D897996E6B845DDBD99ADF3-0X55D398326F99059FF775485246999027B3197955$0.9993
0.0004911 Eth
$3,205,581.0000
3,208,477.987 0X4268B8F0B87B6EAE5D897996E6B845DDBD99ADF3
25.5090%
2
Astroport V2
ULUNA-IBC/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4$0.9987
0.0004908 Eth
$1,998,969.0000
2,575,393.502 ULUNA
20.4756%
3
Osmosis
IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858-UOSMO$0.9955
0.0004893 Eth
$1,594,894.0000
1,602,047.926 IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
12.7371%
4
Osmosis
IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858-UOSMO$0.9982
0.0004907 Eth
$452,477.0000
453,284.566 IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
3.6038%
5
Kujira Fin
KUJI-AXLUSDC$0.9991
0.0004910 Eth
$312,111.0000
94,024.806 KUJI
0.7475%
6
Kujira Fin
AXLUSDC-USK$0.9991
0.0004910 Eth
$243,476.0000
243,087.915 AXLUSDC
1.9327%
7
Kujira Fin
AXLUSDC-USDC$1.0000
0.0004909 Eth
$241,749.0000
241,669.633 AXLUSDC
1.9214%
8
Kinetix V3
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X919C1C267BC06A7039E03FCC2EF738525769109C$0.9997
0.0004913 Eth
$229,860.0000
229,736.870 0XEB466342C4D449BC9F53A865D5CB90586F405215
1.8265%
9
SpookySwap
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83$0.9971
0.0004904 Eth
$186,657.0000
190,755.289 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
1.5166%
10
Curve (Avalanche)
0XFAB550568C688D5D8A52C7D794CB93EDC26EC0EC-0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E$0.9993
0.0004911 Eth
$164,833.0000
164,900.661 0XFAB550568C688D5D8A52C7D794CB93EDC26EC0EC
1.3110%
11
Wigoswap
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83$0.9960
0.0004895 Eth
$143,797.0000
148,318.392 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
1.1792%
12
Quickswap (v3)
0X750E4C4984A9E0F12978EA6742BC1C5D248F40ED-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$0.9987
0.0004908 Eth
$95,921.0000
96,011.323 0X750E4C4984A9E0F12978EA6742BC1C5D248F40ED
0.7633%
13
Pancakeswap V3 (Base)
0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA-0XEB466342C4D449BC9F53A865D5CB90586F405215$0.9993
0.0004911 Eth
$84,060.0000
84,102.352 0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA
0.6687%
14
Shade Protocol
SECRET1FL449MUK5YQ8DLAD7A22NJE4P5D2PNSGYMHJFD-SECRET1VKQ022X4Q8T8KX9DE3R84U669L65XNWF2LG3E6$0.9978
0.0004903 Eth
$82,243.0000
76,954.649 SECRET1FL449MUK5YQ8DLAD7A22NJE4P5D2PNSGYMHJFD
0.6118%
15
FusionX V3
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X09BC4E0D864854C6AFB6EB9A9CDF58AC190D0DF9$1.0310
0.0006017 Eth
$71,105.0000
184,910.418 0XEB466342C4D449BC9F53A865D5CB90586F405215
1.4701%
16
Kujira Fin
ATOM-AXLUSDC$0.9991
0.0004910 Eth
$64,462.0000
7,029.165 ATOM
0.0559%
17
Balancer V2 (Base)
0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913-0XEB466342C4D449BC9F53A865D5CB90586F405215$0.9995
0.0004912 Eth
$62,028.0000
62,066.109 0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913
0.4935%
18
Osmosis
IBC/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4-IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858$0.9982
0.0004905 Eth
$61,668.0000
61,774.141 IBC/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4
0.4911%
19
Kujira Fin
MNTA-AXLUSDC$0.9991
0.0004910 Eth
$56,265.0000
87,423.848 MNTA
0.6951%
20
Sushiswap V3 (Arbitrum)
0XAF88D065E77C8CC2239327C5EDB3A432268E5831-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0000
0.0004916 Eth
$55,272.0000
55,250.550 0XAF88D065E77C8CC2239327C5EDB3A432268E5831
0.4393%
21
Osmosis
IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858-IBC/D9AFCECDD361D38302AA66EB3BAC23B95234832C51D12489DC451FA2B7C72782$0.9989
0.0004910 Eth
$54,071.0000
54,132.910 IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
0.4304%
22
Equalizer
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83$0.9975
0.0004902 Eth
$48,600.0000
49,608.398 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.3944%
23
Astroport (Sei)
IBC/F082B65C88E4B6D5EF1DB243CDA1D331D002759E938A0F5CD3FFDC5D53B3E349-FACTORY/SEI189ADGUAWUGK3E55ZN63Z8R9LL29XRJWCA636RA7V7GXUZN98SXYQWZT47L/HQ4TUDZHRBNXW3TFA5N6M52NVMVCC19XGGBYDIJKCD6H$1.0000
0.0004918 Eth
$45,587.0000
45,680.361 IBC/F082B65C88E4B6D5EF1DB243CDA1D331D002759E938A0F5CD3FFDC5D53B3E349
0.3632%
24
Astroport V2
ULUNA-IBC/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4$0.9987
0.0004908 Eth
$43,962.0000
56,272.606 ULUNA
0.4474%
25
Velocimeter (Fantom)
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83$0.9973
0.0004901 Eth
$33,235.0000
33,939.643 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.2698%
26
Astroport V2
TERRA1NSUQSK6KH58ULCZATWEV87TTQ2Z6R3PUSULG9R24MFJ2FVTZD4UQ3EXN26-IBC/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4$0.9987
0.0004908 Eth
$32,624.0000
430,741.017 TERRA1NSUQSK6KH58ULCZATWEV87TTQ2Z6R3PUSULG9R24MFJ2FVTZD4UQ3EXN26
3.4246%
27
Équilibre
0X919C1C267BC06A7039E03FCC2EF738525769109C-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0000
0.0004915 Eth
$30,967.0000
30,960.208 0X919C1C267BC06A7039E03FCC2EF738525769109C
0.2461%
28
Balancer V2 (Base)
0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA-0XEB466342C4D449BC9F53A865D5CB90586F405215$0.9995
0.0004912 Eth
$28,683.0000
28,692.703 0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA
0.2281%
29
Osmosis
IBC/208B2F137CDE510B44C41947C045CFDC27F996A9D990EA64460BDD5B3DBEB2ED-IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858$0.9989
0.0004910 Eth
$23,629.0000
1,242,271.867 IBC/208B2F137CDE510B44C41947C045CFDC27F996A9D990EA64460BDD5B3DBEB2ED
9.8767%
30
Pancakeswap V3 (Linea)
0X176211869CA2B568F2A7D4EE941E073A821EE1FF-0XEB466342C4D449BC9F53A865D5CB90586F405215$0.9987
0.0004908 Eth
$20,846.0000
20,854.175 0X176211869CA2B568F2A7D4EE941E073A821EE1FF
0.1658%
31
Velocimeter (Fantom)
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X28A92DDE19D9989F39A49905D7C9C2FAC7799BDF$0.9973
0.0004901 Eth
$20,388.0000
20,434.669 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.1625%
32
Sushiswap V3 (Linea)
0XEB466342C4D449BC9F53A865D5CB90586F405215-0XE5D7C2A44FFDDF6B295A15C148167DAAAF5CF34F$0.9973
0.0004901 Eth
$16,196.6800
16,317.136 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.1297%
33
OpenOcean
USDC-AXLUSDC$0.9273
0.0004557 Eth
$14,053.0100
15,156.265 USDC
0.1205%
34
Astrovault
IBC/B9E4FD154C92D3A23BEA029906C4C5FF2FE74CB7E3A058290B77197A263CF88B-ARCHWAY1CUTFH7M87CYQ5QGQQW49F289QHA7VHSG6WTR6RL5FVM28ULNL9SSG0VK0N$0.9896
0.0004863 Eth
$14,004.8900
13,837.170 IBC/B9E4FD154C92D3A23BEA029906C4C5FF2FE74CB7E3A058290B77197A263CF88B
0.1100%
35
SushiSwap V3 (Base)
0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA-0XEB466342C4D449BC9F53A865D5CB90586F405215$0.9996
0.0004912 Eth
$12,952.6100
12,952.093 0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA
0.1030%
36
SwapBased
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X4200000000000000000000000000000000000006$0.9964
0.0004897 Eth
$9,445.0700
9,498.006 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0755%
37
BaseSwap
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X4200000000000000000000000000000000000006$1.0060
0.0004945 Eth
$7,022.5500
7,000.514 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0557%
38
OpenOcean
WETH-AXLUSDC$0.9175
0.0004547 Eth
$6,074.3700
3.195 WETH
0.0000%
39
Astroport V2
TERRA1NSUQSK6KH58ULCZATWEV87TTQ2Z6R3PUSULG9R24MFJ2FVTZD4UQ3EXN26-IBC/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4$0.9987
0.0004908 Eth
$6,069.2200
79,848.039 TERRA1NSUQSK6KH58ULCZATWEV87TTQ2Z6R3PUSULG9R24MFJ2FVTZD4UQ3EXN26
0.6348%
40
OpenOcean
AXLUSDC-GOHM$2.8600
0.0014057 Eth
$5,720.8300
2,000.000 AXLUSDC
0.0159%
41
Équilibre
0XEB466342C4D449BC9F53A865D5CB90586F405215-0XC86C7C0EFBD6A49B35E8714C5F59D99DE09A225B$1.0000
0.0004915 Eth
$5,686.5100
4,939.009 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0393%
42
Kujira Fin
WETH-AXLUSDC$0.9991
0.0004910 Eth
$5,264.4100
2.557 WETH
0.0000%
43
Kujira Fin
WBTC-AXLUSDC$0.9991
0.0004910 Eth
$5,201.2000
0.137 WBTC
0.0000%
44
Equalizer
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X28A92DDE19D9989F39A49905D7C9C2FAC7799BDF$0.9985
0.0004907 Eth
$4,919.5000
4,927.720 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.0392%
45
Beethoven X
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83$0.9974
0.0004902 Eth
$2,742.5800
2,805.741 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.0223%
46
OpenOcean
AXLUSDC-USDC$0.9990
0.0004909 Eth
$2,658.1100
2,660.801 AXLUSDC
0.0212%
47
Equalizer
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0XDC301622E621166BD8E82F2CA0A26C13AD0BE355$0.9985
0.0004907 Eth
$2,596.2500
2,600.594 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.0207%
48
Kujira Fin
PAXG-AXLUSDC$0.9991
0.0004910 Eth
$2,015.3700
0.999 PAXG
0.0000%
49
Osmosis
IBC/CBA34207E969623D95D057D9B11B0C8B32B89A71F170577D982FDDE623813FFC-IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858$1.0050
0.0004941 Eth
$1,937.5600
424,571.594 IBC/CBA34207E969623D95D057D9B11B0C8B32B89A71F170577D982FDDE623813FFC
3.3756%
50
OpenOcean
DAI-AXLUSDC$0.9273
0.0004557 Eth
$1,868.6700
2,016.000 DAI
0.0160%
51
OpenOcean
AXLUSDC-MIM$0.9942
0.0004886 Eth
$994.2300
1,000.000 AXLUSDC
0.0080%
52
DackieSwap V3
0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0010
0.0004749 Eth
$983.9200
982.577 0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA
0.0078%
53
OpenOcean
TOMB-AXLUSDC$0.9273
0.0004557 Eth
$614.9300
78,000.000 TOMB
0.6201%
54
SushiSwap V3 (Base)
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X4200000000000000000000000000000000000006$0.9987
0.0004908 Eth
$607.4700
609.230 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0048%
55
Equalizer (Base)
0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0000
0.0004948 Eth
$578.5300
578.382 0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA
0.0046%
56
OpenOcean
AXLUSDC-USDT$0.9995
0.0004912 Eth
$578.3000
578.610 AXLUSDC
0.0046%
57
OpenOcean
AXLUSDC-XRUNE$0.9227
0.0004567 Eth
$514.3400
557.400 AXLUSDC
0.0044%
58
OpenOcean
AXLUSDC-ETH$0.9878
0.0004854 Eth
$504.5100
510.744 AXLUSDC
0.0041%
59
Kyberswap Elastic (Linea)
0X176211869CA2B568F2A7D4EE941E073A821EE1FF-0XEB466342C4D449BC9F53A865D5CB90586F405215$0.9985
0.0004907 Eth
$498.0700
498.689 0X176211869CA2B568F2A7D4EE941E073A821EE1FF
0.0040%
60
OpenOcean
USDT-AXLUSDC$0.9305
0.0004533 Eth
$465.2200
499.772 USDT
0.0040%
61
OpenOcean
AXLUSDC-TOMB$0.9463
0.0004554 Eth
$435.3100
460.000 AXLUSDC
0.0037%
62
OpenOcean
AXLUSDC-UST$0.5072
0.0002465 Eth
$405.7300
800.000 AXLUSDC
0.0064%
63
Kujira Fin
JUNO-AXLUSDC$1.0010
0.0004931 Eth
$397.5900
1,170.000 JUNO
0.0093%
64
Équilibre
0X7F5373AE26C3E8FFC4C77B7255DF7EC1A9AF52A6-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0000
0.0004915 Eth
$279.4500
279.427 0X7F5373AE26C3E8FFC4C77B7255DF7EC1A9AF52A6
0.0022%
65
Curve (Polygon)
0X750E4C4984A9E0F12978EA6742BC1C5D248F40ED-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$0.9987
0.0004908 Eth
$247.0500
247.342 0X750E4C4984A9E0F12978EA6742BC1C5D248F40ED
0.0020%
66
SushiSwap V3 (Base)
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X4200000000000000000000000000000000000006$0.9992
0.0004911 Eth
$243.2700
243.884 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0019%
67
SpookySwap
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0X841FAD6EAE12C286D1FD18D1D525DFFA75C7EFFE$0.9971
0.0004904 Eth
$231.8200
236.538 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.0019%
68
Équilibre
0X74CCBE53F77B08632CE0CB91D3A545BF6B8E0979-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0000
0.0004915 Eth
$218.6100
62,420.853 0X74CCBE53F77B08632CE0CB91D3A545BF6B8E0979
0.4963%
69
Osmosis
IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858-IBC/D38BB3DD46864694F009AF01DA5A815B3A875F8CC52FF5679BFFCC35DC7451D5$0.9989
0.0004910 Eth
$214.6700
214.912 IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
0.0017%
70
Equalizer
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0XF43CC235E686D7BC513F53FBFFB61F760C3A1882$0.9985
0.0004907 Eth
$207.0500
208.860 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.0017%
71
OpenOcean
UST-AXLUSDC$0.9246
0.0004529 Eth
$190.1000
10,233.483 UST
0.0814%
72
SpaceFi
0X15C3EB3B621D1BFF62CBA1C9536B7C1AE9149B57-0XD4949664CD82660AAE99BEDC034A0DEA8A0BD517$0.9914
0.0004872 Eth
$165.1800
163.233 0X15C3EB3B621D1BFF62CBA1C9536B7C1AE9149B57
0.0013%
73
Alien Base
0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0030
0.0004928 Eth
$136.7300
136.413 0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA
0.0011%
74
Pancakeswap (Stableswap)
0X4268B8F0B87B6EAE5D897996E6B845DDBD99ADF3-0X55D398326F99059FF775485246999027B3197955$0.9982
0.0004905 Eth
$127.7100
127.935 0X4268B8F0B87B6EAE5D897996E6B845DDBD99ADF3
0.0010%
75
DackieSwap V3
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X4200000000000000000000000000000000000006$0.9988
0.0004909 Eth
$117.0000
117.519 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0009%
76
Kujira Fin
MARS-AXLUSDC$0.9991
0.0004910 Eth
$102.4000
1,072.089 MARS
0.0085%
77
OpenOcean
AXLUSDC-WETH$0.9880
0.0004870 Eth
$100.3800
101.604 AXLUSDC
0.0008%
78
OpenOcean
AXLUSDC-BUSD$0.9988
0.0004802 Eth
$95.6800
95.800 AXLUSDC
0.0008%
79
OpenOcean
ETH-AXLUSDC$0.9273
0.0004557 Eth
$87.5500
0.046 ETH
0.0000%
80
OpenOcean
AXLUSDC-MATIC$0.9975
0.0004797 Eth
$82.9200
83.129 AXLUSDC
0.0007%
81
Rocketswap
0XEB466342C4D449BC9F53A865D5CB90586F405215-0X4200000000000000000000000000000000000006$0.9970
0.0004900 Eth
$82.5200
83.121 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0007%
82
Kujira Fin
TAO-AXLUSDC$0.9991
0.0004910 Eth
$81.2400
0.321 TAO
0.0000%
83
Osmosis
IBC/5973C068568365FFF40DEDCF1A1CB7582B6116B731CD31A12231AE25E20B871F-IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858$1.0020
0.0004927 Eth
$79.2900
72.635 IBC/5973C068568365FFF40DEDCF1A1CB7582B6116B731CD31A12231AE25E20B871F
0.0006%
84
Osmosis
IBC/A0CC0CF735BFB30E730C70019D4218A1244FF383503FF7579C9201AB93CA9293-IBC/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858$0.9960
0.0004896 Eth
$79.1100
313.722 IBC/A0CC0CF735BFB30E730C70019D4218A1244FF383503FF7579C9201AB93CA9293
0.0025%
85
OpenOcean
AXLUSDC-DAI$1.0000
0.0004984 Eth
$73.6600
73.633 AXLUSDC
0.0006%
86
Équilibre
0X332C72DD7E77070740F01D2D35851C461585D5D0-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0000
0.0004915 Eth
$67.3900
217.335 0X332C72DD7E77070740F01D2D35851C461585D5D0
0.0017%
87
Forge
0X15C3EB3B621D1BFF62CBA1C9536B7C1AE9149B57-0XD4949664CD82660AAE99BEDC034A0DEA8A0BD517$0.9946
0.0004888 Eth
$29.5300
30.327 0X15C3EB3B621D1BFF62CBA1C9536B7C1AE9149B57
0.0002%
88
Équilibre
0XEB466342C4D449BC9F53A865D5CB90586F405215-0XFA9343C3897324496A05FC75ABED6BAC29F8A40F$1.0000
0.0004915 Eth
$28.0500
28.258 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0002%
89
SpookySwap
0X174C7106AEECDC11389F7DD21342F05F46CCB40F-0X1B6382DBDEA11D97F24495C9A90B7C88469134A4$0.9971
0.0004904 Eth
$23.7400
12,226.394 0X174C7106AEECDC11389F7DD21342F05F46CCB40F
0.0972%
90
Kyberswap Elastic (Linea)
0XEB466342C4D449BC9F53A865D5CB90586F405215-0XE5D7C2A44FFDDF6B295A15C148167DAAAF5CF34F$1.0080
0.0004885 Eth
$20.7300
20.568 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0002%
91
Kujira Fin
EVMOS-AXLUSDC$0.9991
0.0004910 Eth
$13.1800
223.473 EVMOS
0.0018%
92
Sushiswap V3 (Linea)
0XEB466342C4D449BC9F53A865D5CB90586F405215-0XE5D7C2A44FFDDF6B295A15C148167DAAAF5CF34F$0.9973
0.0004901 Eth
$7.5000
7.577 0XEB466342C4D449BC9F53A865D5CB90586F405215
0.0001%
93
Kujira Fin
STARS-AXLUSDC$1.0010
0.0004882 Eth
$4.2600
304.130 STARS
0.0024%
94
Kujira Fin
OSMO-AXLUSDC$0.9991
0.0004910 Eth
$4.1400
5.339 OSMO
0.0000%
95
Rocketswap
0X6653DD4B92A0E5BF8AE570A98906D9D6FD2EEC09-0XEB466342C4D449BC9F53A865D5CB90586F405215$1.0030
0.0004940 Eth
$4.0700
48.036 0X6653DD4B92A0E5BF8AE570A98906D9D6FD2EEC09
0.0004%
96
Velocimeter (Fantom)
0X1B6382DBDEA11D97F24495C9A90B7C88469134A4-0XCE1E3CC1950D2AAEB47DE04DE2DEC2DC86380E0A$0.9973
0.0004901 Eth
$3.0600
3.065 0X1B6382DBDEA11D97F24495C9A90B7C88469134A4
0.0000%
97
Wombat Exchange (BNB)
BUSD-AXLUSDC$0.9983
0.0004906 Eth
$3.0000
3.001 BUSD
0.0000%
98
Kujira Fin
LUNA-AXLUSDC$0.9991
0.0004910 Eth
$0.9991
1.098 LUNA
0.0000%
99
Kujira Fin
WBNB-AXLUSDC$1.0010
0.0004945 Eth
$0.7086
0.003 WBNB
0.0000%
100
Kujira Fin
CMDX-AXLUSDC$1.0010
0.0004940 Eth
$0.0154
0.230 CMDX
0.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
BurnableMintableCappedERC20

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 1000 runs

Other Settings:
london EvmVersion
File 1 of 14 : BurnableMintableCappedERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

import { IAxelarGateway } from './interfaces/IAxelarGateway.sol';
import { IBurnableMintableCappedERC20 } from './interfaces/IBurnableMintableCappedERC20.sol';

import { MintableCappedERC20 } from './MintableCappedERC20.sol';
import { DepositHandler } from './DepositHandler.sol';

contract BurnableMintableCappedERC20 is IBurnableMintableCappedERC20, MintableCappedERC20 {
    constructor(
        string memory name,
        string memory symbol,
        uint8 decimals,
        uint256 capacity
    ) MintableCappedERC20(name, symbol, decimals, capacity) {}

    function depositAddress(bytes32 salt) public view returns (address) {
        /* Convert a hash which is bytes32 to an address which is 20-byte long
        according to https://docs.soliditylang.org/en/v0.8.1/control-structures.html?highlight=create2#salted-contract-creations-create2 */
        return
            address(
                uint160(
                    uint256(
                        keccak256(
                            abi.encodePacked(bytes1(0xff), owner, salt, keccak256(abi.encodePacked(type(DepositHandler).creationCode)))
                        )
                    )
                )
            );
    }

    function burn(bytes32 salt) external onlyOwner {
        address account = depositAddress(salt);
        _burn(account, balanceOf[account]);
    }

    function burnFrom(address account, uint256 amount) external onlyOwner {
        uint256 _allowance = allowance[account][msg.sender];
        if (_allowance != type(uint256).max) {
            _approve(account, msg.sender, _allowance - amount);
        }
        _burn(account, amount);
    }
}

File 2 of 14 : DepositHandler.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

contract DepositHandler {
    error IsLocked();
    error NotContract();

    uint256 internal constant IS_NOT_LOCKED = uint256(1);
    uint256 internal constant IS_LOCKED = uint256(2);

    uint256 internal _lockedStatus = IS_NOT_LOCKED;

    modifier noReenter() {
        if (_lockedStatus == IS_LOCKED) revert IsLocked();

        _lockedStatus = IS_LOCKED;
        _;
        _lockedStatus = IS_NOT_LOCKED;
    }

    function execute(address callee, bytes calldata data) external noReenter returns (bool success, bytes memory returnData) {
        if (callee.code.length == 0) revert NotContract();
        (success, returnData) = callee.call(data);
    }

    // NOTE: The gateway should always destroy the `DepositHandler` in the same runtime context that deploys it.
    function destroy(address etherDestination) external noReenter {
        selfdestruct(payable(etherDestination));
    }
}

File 3 of 14 : ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

import { IERC20 } from './interfaces/IERC20.sol';

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is IERC20 {
    mapping(address => uint256) public override balanceOf;

    mapping(address => mapping(address => uint256)) public override allowance;

    uint256 public override totalSupply;

    string public name;
    string public symbol;

    uint8 public immutable decimals;

    /**
     * @dev Sets the values for {name}, {symbol}, and {decimals}.
     */
    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_
    ) {
        name = name_;
        symbol = symbol_;
        decimals = decimals_;
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) external virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external virtual override returns (bool) {
        uint256 _allowance = allowance[sender][msg.sender];

        if (_allowance != type(uint256).max) {
            _approve(sender, msg.sender, _allowance - amount);
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        _approve(msg.sender, spender, allowance[msg.sender][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        _approve(msg.sender, spender, allowance[msg.sender][spender] - subtractedValue);
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        if (sender == address(0) || recipient == address(0)) revert InvalidAccount();

        balanceOf[sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        if (account == address(0)) revert InvalidAccount();

        totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        if (account == address(0)) revert InvalidAccount();

        balanceOf[account] -= amount;
        totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        if (owner == address(0) || spender == address(0)) revert InvalidAccount();

        allowance[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

File 4 of 14 : ERC20Permit.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

import { IERC20 } from './interfaces/IERC20.sol';
import { IERC20Permit } from './interfaces/IERC20Permit.sol';

import { ERC20 } from './ERC20.sol';

abstract contract ERC20Permit is IERC20, IERC20Permit, ERC20 {
    error PermitExpired();
    error InvalidS();
    error InvalidV();
    error InvalidSignature();

    bytes32 public immutable DOMAIN_SEPARATOR;

    string private constant EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA = '\x19\x01';

    // keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)')
    bytes32 private constant DOMAIN_TYPE_SIGNATURE_HASH = bytes32(0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f);

    // keccak256('Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)')
    bytes32 private constant PERMIT_SIGNATURE_HASH = bytes32(0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9);

    mapping(address => uint256) public nonces;

    constructor(string memory name) {
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(DOMAIN_TYPE_SIGNATURE_HASH, keccak256(bytes(name)), keccak256(bytes('1')), block.chainid, address(this))
        );
    }

    function permit(
        address issuer,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        if (block.timestamp > deadline) revert PermitExpired();

        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) revert InvalidS();

        if (v != 27 && v != 28) revert InvalidV();

        bytes32 digest = keccak256(
            abi.encodePacked(
                EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA,
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_SIGNATURE_HASH, issuer, spender, value, nonces[issuer]++, deadline))
            )
        );

        address recoveredAddress = ecrecover(digest, v, r, s);

        if (recoveredAddress != issuer) revert InvalidSignature();

        // _approve will revert if issuer is address(0x0)
        _approve(issuer, spender, value);
    }
}

File 5 of 14 : IAxelarGateway.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

interface IAxelarGateway {
    /**********\
    |* Errors *|
    \**********/

    error NotSelf();
    error NotProxy();
    error InvalidCodeHash();
    error SetupFailed();
    error InvalidAuthModule();
    error InvalidTokenDeployer();
    error InvalidAmount();
    error InvalidChainId();
    error InvalidCommands();
    error TokenDoesNotExist(string symbol);
    error TokenAlreadyExists(string symbol);
    error TokenDeployFailed(string symbol);
    error TokenContractDoesNotExist(address token);
    error BurnFailed(string symbol);
    error MintFailed(string symbol);
    error InvalidSetMintLimitsParams();
    error ExceedMintLimit(string symbol);

    /**********\
    |* Events *|
    \**********/

    event TokenSent(address indexed sender, string destinationChain, string destinationAddress, string symbol, uint256 amount);

    event ContractCall(
        address indexed sender,
        string destinationChain,
        string destinationContractAddress,
        bytes32 indexed payloadHash,
        bytes payload
    );

    event ContractCallWithToken(
        address indexed sender,
        string destinationChain,
        string destinationContractAddress,
        bytes32 indexed payloadHash,
        bytes payload,
        string symbol,
        uint256 amount
    );

    event Executed(bytes32 indexed commandId);

    event TokenDeployed(string symbol, address tokenAddresses);

    event ContractCallApproved(
        bytes32 indexed commandId,
        string sourceChain,
        string sourceAddress,
        address indexed contractAddress,
        bytes32 indexed payloadHash,
        bytes32 sourceTxHash,
        uint256 sourceEventIndex
    );

    event ContractCallApprovedWithMint(
        bytes32 indexed commandId,
        string sourceChain,
        string sourceAddress,
        address indexed contractAddress,
        bytes32 indexed payloadHash,
        string symbol,
        uint256 amount,
        bytes32 sourceTxHash,
        uint256 sourceEventIndex
    );

    event TokenMintLimitUpdated(string symbol, uint256 limit);

    event OperatorshipTransferred(bytes newOperatorsData);

    event Upgraded(address indexed implementation);

    /********************\
    |* Public Functions *|
    \********************/

    function sendToken(
        string calldata destinationChain,
        string calldata destinationAddress,
        string calldata symbol,
        uint256 amount
    ) external;

    function callContract(
        string calldata destinationChain,
        string calldata contractAddress,
        bytes calldata payload
    ) external;

    function callContractWithToken(
        string calldata destinationChain,
        string calldata contractAddress,
        bytes calldata payload,
        string calldata symbol,
        uint256 amount
    ) external;

    function isContractCallApproved(
        bytes32 commandId,
        string calldata sourceChain,
        string calldata sourceAddress,
        address contractAddress,
        bytes32 payloadHash
    ) external view returns (bool);

    function isContractCallAndMintApproved(
        bytes32 commandId,
        string calldata sourceChain,
        string calldata sourceAddress,
        address contractAddress,
        bytes32 payloadHash,
        string calldata symbol,
        uint256 amount
    ) external view returns (bool);

    function validateContractCall(
        bytes32 commandId,
        string calldata sourceChain,
        string calldata sourceAddress,
        bytes32 payloadHash
    ) external returns (bool);

    function validateContractCallAndMint(
        bytes32 commandId,
        string calldata sourceChain,
        string calldata sourceAddress,
        bytes32 payloadHash,
        string calldata symbol,
        uint256 amount
    ) external returns (bool);

    /***********\
    |* Getters *|
    \***********/

    function authModule() external view returns (address);

    function tokenDeployer() external view returns (address);

    function tokenMintLimit(string memory symbol) external view returns (uint256);

    function tokenMintAmount(string memory symbol) external view returns (uint256);

    function allTokensFrozen() external view returns (bool);

    function implementation() external view returns (address);

    function tokenAddresses(string memory symbol) external view returns (address);

    function tokenFrozen(string memory symbol) external view returns (bool);

    function isCommandExecuted(bytes32 commandId) external view returns (bool);

    function adminEpoch() external view returns (uint256);

    function adminThreshold(uint256 epoch) external view returns (uint256);

    function admins(uint256 epoch) external view returns (address[] memory);

    /*******************\
    |* Admin Functions *|
    \*******************/

    function setTokenMintLimits(string[] calldata symbols, uint256[] calldata limits) external;

    function upgrade(
        address newImplementation,
        bytes32 newImplementationCodeHash,
        bytes calldata setupParams
    ) external;

    /**********************\
    |* External Functions *|
    \**********************/

    function setup(bytes calldata params) external;

    function execute(bytes calldata input) external;
}

File 6 of 14 : IBurnableMintableCappedERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

import { IERC20Burn } from './IERC20Burn.sol';
import { IERC20BurnFrom } from './IERC20BurnFrom.sol';
import { IMintableCappedERC20 } from './IMintableCappedERC20.sol';

interface IBurnableMintableCappedERC20 is IERC20Burn, IERC20BurnFrom, IMintableCappedERC20 {
    function depositAddress(bytes32 salt) external view returns (address);

    function burn(bytes32 salt) external;

    function burnFrom(address account, uint256 amount) external;
}

File 7 of 14 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    error InvalidAccount();

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 8 of 14 : IERC20Burn.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

interface IERC20Burn {
    function burn(bytes32 salt) external;
}

File 9 of 14 : IERC20BurnFrom.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

interface IERC20BurnFrom {
    function burnFrom(address account, uint256 amount) external;
}

File 10 of 14 : IERC20Permit.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

interface IERC20Permit {
    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function nonces(address account) external view returns (uint256);

    function permit(
        address issuer,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}

File 11 of 14 : IMintableCappedERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

import { IERC20 } from './IERC20.sol';
import { IERC20Permit } from './IERC20Permit.sol';
import { IOwnable } from './IOwnable.sol';

interface IMintableCappedERC20 is IERC20, IERC20Permit, IOwnable {
    error CapExceeded();

    function cap() external view returns (uint256);

    function mint(address account, uint256 amount) external;
}

File 12 of 14 : IOwnable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

interface IOwnable {
    error NotOwner();
    error InvalidOwner();

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function owner() external view returns (address);

    function transferOwnership(address newOwner) external;
}

File 13 of 14 : MintableCappedERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

import { IMintableCappedERC20 } from './interfaces/IMintableCappedERC20.sol';

import { ERC20 } from './ERC20.sol';
import { ERC20Permit } from './ERC20Permit.sol';
import { Ownable } from './Ownable.sol';

contract MintableCappedERC20 is IMintableCappedERC20, ERC20, ERC20Permit, Ownable {
    uint256 public immutable cap;

    constructor(
        string memory name,
        string memory symbol,
        uint8 decimals,
        uint256 capacity
    ) ERC20(name, symbol, decimals) ERC20Permit(name) Ownable() {
        cap = capacity;
    }

    function mint(address account, uint256 amount) external onlyOwner {
        uint256 capacity = cap;

        _mint(account, amount);

        if (capacity == 0) return;

        if (totalSupply > capacity) revert CapExceeded();
    }
}

File 14 of 14 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

import { IOwnable } from './interfaces/IOwnable.sol';

abstract contract Ownable is IOwnable {
    address public owner;

    constructor() {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    modifier onlyOwner() {
        if (owner != msg.sender) revert NotOwner();

        _;
    }

    function transferOwnership(address newOwner) external virtual onlyOwner {
        if (newOwner == address(0)) revert InvalidOwner();

        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

Settings
{
  "evmVersion": "london",
  "optimizer": {
    "enabled": true,
    "runs": 1000,
    "details": {
      "peephole": true,
      "inliner": true,
      "jumpdestRemover": true,
      "orderLiterals": true,
      "deduplicate": true,
      "cse": true,
      "constantOptimizer": true,
      "yul": true,
      "yulDetails": {
        "stackAllocation": true
      }
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint256","name":"capacity","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CapExceeded","type":"error"},{"inputs":[],"name":"InvalidAccount","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"InvalidS","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidV","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"depositAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b5060405162001837380380620018378339810160408190526200003491620002e1565b83838383838484848260039080519060200190620000549291906200016e565b5081516200006a9060049060208501906200016e565b5060ff166080908152835160208086019190912060408051808201825260018152603160f81b9084015280517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f938101939093528201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246918101919091523060a082015260c0019150620001029050565b60408051601f1981840301815290829052805160209091012060a052600680546001600160a01b0319163390811790915591506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360c05250620003a995505050505050565b8280546200017c906200036c565b90600052602060002090601f016020900481019282620001a05760008555620001eb565b82601f10620001bb57805160ff1916838001178555620001eb565b82800160010185558215620001eb579182015b82811115620001eb578251825591602001919060010190620001ce565b50620001f9929150620001fd565b5090565b5b80821115620001f95760008155600101620001fe565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200023c57600080fd5b81516001600160401b038082111562000259576200025962000214565b604051601f8301601f19908116603f0116810190828211818310171562000284576200028462000214565b81604052838152602092508683858801011115620002a157600080fd5b600091505b83821015620002c55785820183015181830184015290820190620002a6565b83821115620002d75760008385830101525b9695505050505050565b60008060008060808587031215620002f857600080fd5b84516001600160401b03808211156200031057600080fd5b6200031e888389016200022a565b955060208701519150808211156200033557600080fd5b5062000344878288016200022a565b935050604085015160ff811681146200035c57600080fd5b6060959095015193969295505050565b600181811c908216806200038157607f821691505b60208210811415620003a357634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c051611450620003e760003960008181610265015261067301526000818161028c01526108de0152600061020101526114506000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806340c10f19116100d857806395d89b411161008c578063d505accf11610066578063d505accf14610368578063dd62ed3e1461037b578063f2fde38b146103a657600080fd5b806395d89b411461033a578063a457c2d714610342578063a9059cbb1461035557600080fd5b806379cc6790116100bd57806379cc6790146102f45780637ecebe00146103075780638da5cb5b1461032757600080fd5b806340c10f19146102c157806370a08231146102d457600080fd5b8063313ce5671161012f578063355274ea11610114578063355274ea146102605780633644e5151461028757806339509351146102ae57600080fd5b8063313ce567146101fc57806331eecaf41461023557600080fd5b8063095ea7b311610160578063095ea7b3146101af57806318160ddd146101d257806323b872dd146101e957600080fd5b806306fdde031461017c57806308a1eee11461019a575b600080fd5b6101846103b9565b6040516101919190610e5d565b60405180910390f35b6101ad6101a8366004610e90565b610447565b005b6101c26101bd366004610ec5565b6104a8565b6040519015158152602001610191565b6101db60025481565b604051908152602001610191565b6101c26101f7366004610eef565b6104be565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610191565b610248610243366004610e90565b610515565b6040516001600160a01b039091168152602001610191565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101c26102bc366004610ec5565b61060f565b6101ad6102cf366004610ec5565b610646565b6101db6102e2366004610f2b565b60006020819052908152604090205481565b6101ad610302366004610ec5565b6106e7565b6101db610315366004610f2b565b60056020526000908152604090205481565b600654610248906001600160a01b031681565b610184610758565b6101c2610350366004610ec5565b610765565b6101c2610363366004610ec5565b61079c565b6101ad610376366004610f4d565b6107a9565b6101db610389366004610fc0565b600160209081526000928352604080842090915290825290205481565b6101ad6103b4366004610f2b565b610a6c565b600380546103c690610ff3565b80601f01602080910402602001604051908101604052809291908181526020018280546103f290610ff3565b801561043f5780601f106104145761010080835404028352916020019161043f565b820191906000526020600020905b81548152906001019060200180831161042257829003601f168201915b505050505081565b6006546001600160a01b03163314610472576040516330cd747160e01b815260040160405180910390fd5b600061047d82610515565b6001600160a01b0381166000908152602081905260409020549091506104a4908290610b4b565b5050565b60006104b5338484610bfe565b50600192915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146104ff576104ff85336104fa8685611044565b610bfe565b61050a858585610c9b565b506001949350505050565b6006546040516000917fff00000000000000000000000000000000000000000000000000000000000000916001600160a01b0390911690849061055a60208201610e20565b601f1982820381018352601f90910116604081905261057c919060200161105b565b604051602081830303815290604052805190602001206040516020016105f194939291907fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f19818403018152919052805160209091012092915050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611077565b6006546001600160a01b03163314610671576040516330cd747160e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061069c8383610d77565b806106a657505050565b8060025411156106e2576040517fa4875a4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6006546001600160a01b03163314610712576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054600019811461074e5761074e83336104fa8585611044565b6106e28383610b4b565b600480546103c690610ff3565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611044565b60006104b5338484610c9b565b834211156107e3576040517f1a15a3cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081111561083d576040517f40c1e74800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ff16601b1415801561085557508260ff16601c14155b1561088c576040517f119bce3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600281527f19010000000000000000000000000000000000000000000000000000000000006020808301919091526001600160a01b038a166000908152600590915291822080547f0000000000000000000000000000000000000000000000000000000000000000917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c91886109308361108f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120604051602001610994939291906110aa565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156109ff573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b031614610a56576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a61898989610bfe565b505050505050505050565b6006546001600160a01b03163314610a97576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b038116610ad7576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038216610b7257604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03821660009081526020819052604081208054839290610b9a908490611044565b925050819055508060026000828254610bb39190611044565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383161580610c1b57506001600160a01b038216155b15610c3957604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383161580610cb857506001600160a01b038216155b15610cd657604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03831660009081526020819052604081208054839290610cfe908490611044565b90915550506001600160a01b03821660009081526020819052604081208054839290610d2b908490611077565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c8e91815260200190565b6001600160a01b038216610d9e57604051630da30f6560e31b815260040160405180910390fd5b8060026000828254610db09190611077565b90915550506001600160a01b03821660009081526020819052604081208054839290610ddd908490611077565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b610349806110d283390190565b60005b83811015610e48578181015183820152602001610e30565b83811115610e57576000848401525b50505050565b6020815260008251806020840152610e7c816040850160208701610e2d565b601f01601f19169190910160400192915050565b600060208284031215610ea257600080fd5b5035919050565b80356001600160a01b0381168114610ec057600080fd5b919050565b60008060408385031215610ed857600080fd5b610ee183610ea9565b946020939093013593505050565b600080600060608486031215610f0457600080fd5b610f0d84610ea9565b9250610f1b60208501610ea9565b9150604084013590509250925092565b600060208284031215610f3d57600080fd5b610f4682610ea9565b9392505050565b600080600080600080600060e0888a031215610f6857600080fd5b610f7188610ea9565b9650610f7f60208901610ea9565b95506040880135945060608801359350608088013560ff81168114610fa357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610fd357600080fd5b610fdc83610ea9565b9150610fea60208401610ea9565b90509250929050565b600181811c9082168061100757607f821691505b6020821081141561102857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156110565761105661102e565b500390565b6000825161106d818460208701610e2d565b9190910192915050565b6000821982111561108a5761108a61102e565b500190565b60006000198214156110a3576110a361102e565b5060010190565b600084516110bc818460208901610e2d565b9190910192835250602082015260400191905056fe6080604052600160005534801561001557600080fd5b50610324806100256000396000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062f55d9d1461003a5780631cff79cd1461004f575b600080fd5b61004d6100483660046101da565b610079565b005b61006261005d3660046101fc565b6100bb565b60405161007092919061027f565b60405180910390f35b6002600054141561009d5760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff8116ff5b60006060600260005414156100e35760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff85163b610136576040517f6f7c43f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16848460405161015d9291906102de565b6000604051808303816000865af19150503d806000811461019a576040519150601f19603f3d011682016040523d82523d6000602084013e61019f565b606091505b50600160005590969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101d557600080fd5b919050565b6000602082840312156101ec57600080fd5b6101f5826101b1565b9392505050565b60008060006040848603121561021157600080fd5b61021a846101b1565b9250602084013567ffffffffffffffff8082111561023757600080fd5b818601915086601f83011261024b57600080fd5b81358181111561025a57600080fd5b87602082850101111561026c57600080fd5b6020830194508093505050509250925092565b821515815260006020604081840152835180604085015260005b818110156102b557858101830151858201606001528201610299565b818111156102c7576000606083870101525b50601f01601f191692909201606001949350505050565b818382376000910190815291905056fea264697066735822122032cb5e746816b7fac95205c068b30da37bd40119a57265be331c162cae74712464736f6c63430008090033a264697066735822122004e80ab7b1784de1e4f1eb3b6da0f7a49eea6f1fc7876ba739aa91d7c37db17d64736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000134178656c61722057726170706564205553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000134178656c61722057726170706564205553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Axelar Wrapped USDC
Arg [1] : symbol (string): axlUSDC
Arg [2] : decimals (uint8): 6
Arg [3] : capacity (uint256): 0

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [5] : 4178656c61722057726170706564205553444300000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 61786c5553444300000000000000000000000000000000000000000000000000


Loading