@@ -12,15 +12,34 @@ <h2 class="font-header tact-header">What is Tact?</h2>
12
12
13
13
< article >
14
14
< h3 > You are in good company</ h3 >
15
- < p >
16
- At the start of 2025, the number of unique code contracts deployed on the mainnet reached almost 28 thousand,
17
- of which about < b > 33%</ b > were < b > written in Tact</ b > .
18
- < p >
15
+ < div class ="two-column ">
16
+ < label tuiProgressLabel class ="tui-space_right-4 ">
17
+ < span class ="progress-percent "> {{ value }}%</ span >
18
+ < tui-progress-circle size ="l " [max] ="max " [value] ="value ">
19
+ </ tui-progress-circle >
20
+ </ label >
21
+ < p >
22
+ At the start of 2025, the number of < i [tuiHint] ="tipUniqueCode " [tuiHintShowDelay] ="100 "> unique code</ i >
23
+ contracts deployed on the mainnet reached almost 28 thousand,
24
+ of which about < b > 33%</ b > were < b > written in Tact</ b > .
25
+ </ p >
26
+ </ div >
19
27
< p >
20
28
Here are some selected Tact-based software and applications deployed in production and consumed by end users:
21
29
</ p >
22
30
< div class ="grid tui-space_top-4 ">
23
- < div >
31
+ < div class ="grid-item ">
32
+ < tui-island >
33
+ < h3 class ="tui-island__title "> Proof of Capital</ h3 >
34
+ < p class ="tui-island__paragraph ">
35
+ A market-making smart contract that protects interests of all holders.
36
+ </ p >
37
+ < button tuiButton type ="button " appearance ="flat " size ="m " class ="tui-island__footer-button ">
38
+ < a href ="https://github.com/proof-of-capital/TON "> GitHub</ a >
39
+ </ button >
40
+ </ tui-island >
41
+ </ div >
42
+ < div class ="grid-item ">
24
43
< tui-island >
25
44
< h3 class ="tui-island__title "> Tradoor</ h3 >
26
45
< p class ="tui-island__paragraph ">
@@ -31,7 +50,7 @@ <h3 class="tui-island__title">Tradoor</h3>
31
50
</ button >
32
51
</ tui-island >
33
52
</ div >
34
- < div >
53
+ < div class =" grid-item " >
35
54
< tui-island >
36
55
< h3 class ="tui-island__title "> PixelSwap</ h3 >
37
56
< p class ="tui-island__paragraph ">
@@ -42,7 +61,7 @@ <h3 class="tui-island__title">PixelSwap</h3>
42
61
</ button >
43
62
</ tui-island >
44
63
</ div >
45
- < div >
64
+ < div class =" grid-item " >
46
65
< tui-island >
47
66
< h3 class ="tui-island__title "> GasPump</ h3 >
48
67
< p class ="tui-island__paragraph ">
@@ -53,51 +72,35 @@ <h3 class="tui-island__title">GasPump</h3>
53
72
</ button >
54
73
</ tui-island >
55
74
</ div >
56
- < div >
57
- < tui-island >
58
- < h3 class ="tui-island__title "> Proof of Capital</ h3 >
59
- < p class ="tui-island__paragraph ">
60
- A market-making smart contract that protects interests of all holders.
61
- </ p >
62
- < button tuiButton type ="button " appearance ="flat " size ="m " class ="tui-island__footer-button ">
63
- < a href ="https://github.com/proof-of-capital/TON "> GitHub</ a >
64
- </ button >
65
- </ tui-island >
66
- </ div >
67
75
</ div >
68
76
</ article >
69
77
70
- <!--
71
- <article>
72
- <span class="tact-big tui-space_vertical-5">
73
- At the start of 2025, the number of unique code contracts deployed on the mainnet reached almost 28 thousand, of
74
- which about <span class="blue">33%</span> were <span class="blue">written in Tact</span>
75
- </span>
76
- </article>
77
- -->
78
-
79
78
< article id ="familiar-syntax ">
80
79
< h3 > Familiar syntax</ h3 >
81
80
< p >
82
81
Tact offers familiar syntax inspired by JavaScript & Typescript, Swift, Kotlin and Rust.
83
82
Powerful features such as algebraic data types and compile-time execution look organic and
84
83
friendly to new developers.
85
84
</ p >
86
- < app-code-snippet content ='receive("increment") {
87
- self.val += 1;
88
- }
85
+ < app-code-snippet content ='contract NumberGoUp(val: Int) {
86
+ receive("increment") {
87
+ self.val += 1;
88
+ }
89
89
90
- get fun value(input: Int): Int {
91
- return input + self.val;
90
+ get fun value(extra: Int): Int {
91
+ return extra + self.val;
92
+ }
92
93
} ' [adaptiveContent] ="[
93
94
{
94
95
maxWidth: 600,
95
96
content:
96
- 'receive("increment") {\n' +
97
- ' self.val += 1;\n' +
98
- '}\n\n' +
99
- 'get fun value(input: Int): Int {\n' +
100
- ' return input + self.val;\n' +
97
+ 'contract NumberGoUp(val: Int) {\n' +
98
+ ' receive("increment") {\n' +
99
+ ' self.val += 1;\n' +
100
+ ' }\n\n' +
101
+ ' get fun value(input: Int): Int {\n' +
102
+ ' return input + self.val;\n' +
103
+ ' }\n' +
101
104
'}'
102
105
}
103
106
] "> </ app-code-snippet >
@@ -111,8 +114,9 @@ <h3>Strong type system</h3>
111
114
does not produce silent failures or unexpected truncation.
112
115
</ p >
113
116
< app-code-snippet content ="struct ContractData {
114
- index: Int as uint32;
115
- admin: Address;
117
+ index: Int as uint32 = 0xBABECAFE;
118
+ admin: Address;
119
+ pubKey: Slice as bytes64;
116
120
} "> </ app-code-snippet >
117
121
</ article >
118
122
@@ -129,7 +133,7 @@ <h3>Gas control</h3>
129
133
</ p >
130
134
< app-code-snippet content ='receive("sample message") {
131
135
require(context().value >= ton("0.1"), "must pay at least 0.1 TON");
132
- // (.... etc) //
136
+ // (...etc)
133
137
} '> </ app-code-snippet >
134
138
</ article >
135
139
@@ -154,7 +158,7 @@ <h3>Tact and FunC</h3>
154
158
level of control.
155
159
</ p >
156
160
< p >
157
- Unfortunately, the precision of FunC makes it harder to write complex multi-contract systems.
161
+ Unfortunately, the peculiarity and quirks of FunC makes it harder to write complex multi-contract systems.
158
162
</ p >
159
163
< p >
160
164
Tact enables developers to go even further: you can write the entire suites of smart contracts
@@ -187,4 +191,14 @@ <h3>Bright future awaits</h3>
187
191
adventure!
188
192
</ p >
189
193
</ article >
194
+
195
+ <!-- <hr class="tui-space_vertical-5"> -->
190
196
</ section >
197
+
198
+ < ng-template #tipUniqueCode >
199
+ < p class ="tooltip-text ">
200
+ The "unique code" means that each contract in the data sample has at least one TVM
201
+ instruction that differs from the other contracts, excluding many preprocessed wallets with everything inlined —
202
+ even seqno and a public key for signature verification!
203
+ </ p >
204
+ </ ng-template >
0 commit comments