aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/pages/faq/faq.tsx
blob: b3fe21da709633280847fb9774bd2f2b982bd4cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
import * as _ from 'lodash';
import {colors} from 'material-ui/styles';
import * as React from 'react';
import * as DocumentTitle from 'react-document-title';
import {Footer} from 'ts/components/footer';
import {TopBar} from 'ts/components/top_bar';
import {Question} from 'ts/pages/faq/question';
import {FAQQuestion, FAQSection, Styles, WebsitePaths} from 'ts/types';
import {configs} from 'ts/utils/configs';
import {constants} from 'ts/utils/constants';

export interface FAQProps {
    source: string;
    location: Location;
}

interface FAQState {}

const styles: Styles = {
    thin: {
        fontWeight: 100,
    },
};

const sections: FAQSection[] = [
    {
        name: '0x Protocol',
        questions: [
            {
                prompt: 'What is 0x?',
                answer: (
                    <div>
                        At its core, 0x is an open and non-rent seeking protocol that facilitates trustless,
                        low friction exchange of Ethereum-based assets. Developers can use 0x as a platform
                        to build exchange applications on top of{' '}
                        (<a href={`${configs.BASE_URL}${WebsitePaths.ZeroExJs}#introduction`} target="blank">0x.js</a>
                        {' '}is a Javascript library for interacting with the 0x protocol). For end users, 0x will be
                        the infrastructure of a wide variety of user-facing applications i.e.{' '}
                        <a href={`${configs.BASE_URL}${WebsitePaths.Portal}`} target="blank">0x Portal</a>,
                        a decentralized application that facilitates trustless trading of Ethereum-based tokens
                        between known counterparties.
                    </div>
                ),
            },
            {
                prompt: 'What problem does 0x solve?',
                answer: (
                    <div>
                        In the two years since the Ethereum blockchain’s genesis block, numerous decentralized
                        applications (dApps) have created Ethereum smart contracts for peer-to-peer exchange.
                        Rapid iteration and a lack of best practices have left the blockchain scattered with
                        proprietary and application-specific implementations. As a result, end users are
                        exposed to numerous smart contracts of varying quality and security, with unique
                        configuration processes and learning curves, all of which implement the same
                        functionality. This approach imposes unnecessary costs on the network by fragmenting
                        end users according to the particular dApp each user happens to be using, eliminating
                        valuable network effects around liquidity. 0x is the solution to this problem by
                        acting as modular, unopinionated building blocks that may be assembled and reconfigured.
                    </div>
                ),
            },
            {
                prompt: 'How is 0x different from a centralized exchange like Poloniex or ShapeShift?',
                answer: (
                    <div>
                        <ul>
                            <li>
                                0x is a protocol for exchange, not a user-facing exchange application.
                            </li>
                            <li>
                                0x is decentralized and trustless; there is no central party which can be
                                hacked, run away with customer funds or be subjected to government regulations.
                                Hacks of Mt. Gox, Shapeshift and Bitfinex have demonstrated that these types of
                                systemic risks are palpable.
                            </li>
                            <li>
                                Rather than a proprietary system that exists to extract rent for its owners,
                                0x is public infrastructure that is funded by a globally distributed community
                                of stakeholders. While the protocol is free to use, it enables for-profit
                                user-facing exchange applications to be built on top of the protocol.
                            </li>
                        </ul>
                    </div>
                ),
            },
            {
                prompt: 'If 0x protocol is free to use, where do transaction fees come in?',
                answer: (
                    <div>
                        0x protocol uses off-chain order books to massively reduce friction costs for
                        market makers and ensure that the blockchain is only used for trade settlement.
                        Hosting and maintaining an off-chain order book is a service; to incent “Relayers”
                        to provide this service they must be able to charge transaction fees on trading
                        activity. Relayers are free to set their transaction fees to any value they desire.
                        We expect Relayers to be highly competitive and transaction fees to approach an
                        efficient economic equilibrium over time.
                    </div>
                ),
            },
            {
                prompt: 'What are the differences between 0x protocol and state channels?',
                answer: (
                    <div>
                        <div>
                            Participants in a state channel pass cryptographically signed messages back and
                            forth, accumulating intermediate state changes without publishing them to the
                            canonical chain until the channel is closed. State channels are ideal for “bar tab”
                            applications where numerous intermediate state changes may be accumulated off-chain
                            before being settled by a final on-chain transaction (i.e. day trading, poker,
                            turn-based games).
                        </div>
                        <ul>
                            <li>
                                While state channels drastically reduce the number of on-chain transactions
                                for specific use cases, numerous on-chain transactions and a security deposit
                                are required to open and safely close a state channel making them less efficient
                                than 0x for executing one-time trades.
                            </li>
                            <li>
                                State channels are isolated from the Ethereum blockchain meaning that
                                they cannot interact with smart contracts. 0x is designed to be integrated
                                directly into smart contracts so trades can be executed programmatically
                                in a single line of Solidity code.
                            </li>
                        </ul>
                    </div>
                ),
            },
            {
                prompt: 'What types of digital assets are supported by 0x?',
                answer: (
                    <div>
                        0x supports all Ethereum-based assets that adhere to the ERC20 token standard.
                        There are many ERC20 tokens, worth a combined $2.2B, and more tokens are created
                        each month. We believe that, by 2020, thousands of assets will be tokenized and
                        moved onto the Ethereum blockchain including traditional securities such as equities,
                        bonds and derivatives, fiat currencies and scarce digital goods such as video game
                        items. In the future, cross-blockchain solutions such as{' '}
                        <a href="https://cosmos.network/" target="_blank">Cosmos</a> and{' '}
                        <a href="http://polkadot.io/" target="_blank">Polkadot</a> will allow cryptocurrencies
                        to freely move between blockchains and, naturally, currencies such as Bitcoin will
                        end up being represented as ERC20 tokens on the Ethereum blockchain.
                    </div>
                ),
            },
            {
                prompt: '0x is open source: what prevents someone from forking the protocol?',
                answer: (
                    <div>
                        Ethereum and Bitcoin are both open source protocols. Each protocol has been forked,
                        but the resulting clone networks have seen little adoption (as measured by transaction
                        count or market cap). This is because users have little to no incentive to switch
                        over to a clone network if the original has initial network effects and a talented
                        developer team behind it.
                        An exception is in the case that a protocol includes a controversial feature such as
                        a method of rent extraction or a monetary policy that favors one group of users over
                        another (Zcash developer subsidy - for better or worse - resulted in Zclassic).
                        Perceived inequality can provide a strong enough incentive that users will fork the
                        original protocol’s codebase and spin up a new network that eliminates the controversial
                        feature. In the case of 0x, there is no rent extraction and no users are given
                        special permissions.

                        0x protocol is upgradable. Cutting-edge technical capabilities can be integrated
                        into 0x via decentralized governance (see section below), eliminating incentives
                        to fork off of the original protocol and sacrifice the network effects surrounding
                        liquidity that result from the shared protocol and settlement layer.
                    </div>
                ),
            },
        ],
    },
    {
        name: '0x Token (ZRX)',
        questions: [
            {
                prompt: 'Explain how the 0x protocol token (zrx) works.',
                answer: (
                    <div>
                        <div>
                            0x protocol token (ZRX) is utilized in two ways: 1) to solve the{' '}
                            <a href="https://en.wikipedia.org/wiki/Coordination_game" target="_blank">
                                coordination problem
                            </a> and drive network effects around liquidity, creating a feedback loop
                            where early adopters of the protocol benefit from wider adoption and 2) to
                            be used for decentralized governance over 0x protocol's update mechanism.
                            In more detail:
                        </div>
                        <ul>
                            <li>
                                ZRX tokens are used by Makers and Takers (market participants that generate
                                and consume orders, respectively) to pay transaction fees to Relayers
                                (entities that host and maintain public order books).
                            </li>
                            <li>
                                ZRX tokens are used for decentralized governance over 0x protocol’s update
                                mechanism which allows its underlying smart contracts to be replaced and
                                improved over time. An update mechanism is needed because 0x is built upon
                                Ethereum’s rapidly evolving technology stack, decentralized governance is
                                needed because 0x protocol’s smart contracts will have access to user funds
                                and numerous dApps will need to plug into 0x smart contracts. Decentralized
                                governance ensures that this update process is secure and minimizes disruption
                                to the network.
                            </li>
                        </ul>
                    </div>
                ),
            },
            {
                prompt: 'Why must transaction fees be denominated in 0x token (ZRX) rather than ETH?',
                answer: (
                    <div>
                        0x protocol’s decentralized update mechanism is analogous to proof-of-stake.
                        To maximize the alignment of stakeholder and end user incentives, the staked
                        asset must provide utility within the protocol.
                    </div>
                ),
            },
            {
                prompt: 'How will decentralized governance work?',
                answer: (
                    <div>
                        Decentralized governance is an ongoing focus of research; it will involve token
                        voting with ZRX. Ultimately the solution will maximize security while also maximizing
                        the protocol’s ability to absorb new innovations. Until the governance structure is
                        formalized and encoded within 0x DAO, a multi-sig will be used as a placeholder.
                    </div>
                ),
            },
        ],
    },
    {
        name: 'ZRX Token Launch and Fund Use',
        questions: [
            {
                prompt: 'What is the total supply of ZRX tokens?',
                answer: (
                    <div>
                        1,000,000,000 ZRX. Fixed supply.
                    </div>
                ),
            },
            {
                prompt: 'When is the Token Launch? will there be a pre-sale?',
                answer: (
                    <div>
                        The token launch will be on August 15th, 2017. There will not be a pre-sale.
                    </div>
                ),
            },
            {
                prompt: 'What will the token launch proceeds be used for?',
                answer: (
                    <div>
                        100% of the proceeds raised in the token launch will be used to fund the development
                        of free and open source software, tools and infrastructure that support the protocol
                        and surrounding ecosystem. Check out our{' '}
                        <a
                            href="https://docs.google.com/document/d/1_RVa-_bkU92fWRsC8eNy4vYjcTt-WC8GtqyyjbTd-oY"
                            target="_blank"
                        >
                            development roadmap
                        </a>.
                    </div>
                ),
            },
            {
                prompt: 'What will be the initial distribution of ZRX tokens?',
                answer: (
                    <div>
                        <div className="center" style={{width: '100%'}}>
                            <img
                                style={{width: 350}}
                                src="/images/zrx_pie_chart.png"
                            />
                        </div>
                        <div className="py1">
                            <div className="bold pb1">
                                Token Launch (50%)
                            </div>
                            <div>
                                ZRX is inherently a governance token that plays a critical role in the
                                process of upgrading 0x protocol. We are fully committed to formulating
                                a functional and theoretically sound governance model and we plan to dedicate
                                significant resources to R&D.
                            </div>
                        </div>
                        <div className="py1">
                            <div className="bold pb1">
                                Retained by 0x (15%)
                            </div>
                            <div>
                                The 0x core development team will be able to sustain itself for approximately
                                five years using funds raised through the token launch. If 0x protocol
                                proves to be as foundational a technology as we believe it to be, the
                                retained ZRX tokens will allow the 0x core development team to sustain
                                operations beyond the first 5 years.
                            </div>
                        </div>
                        <div className="py1">
                            <div className="bold pb1">
                                Developer Fund (15%)
                            </div>
                            <div>
                                The Developer Fund will be used to make targeted capital injections
                                into high potential projects and teams that are attempting to grow
                                the 0x ecosystem, strategic partnerships, hackathon prizes and community
                                development activities.
                            </div>
                        </div>
                        <div className="py1">
                            <div className="bold pb1">
                                Founding Team (10%)
                            </div>
                            <div>
                                The founding team’s allocation of ZRX will vest over a traditional 4
                                year vesting schedule with a one year cliff. We believe this should
                                be standard practice for any team that is committed to making their
                                project a long term success.
                            </div>
                        </div>
                        <div className="py1">
                            <div className="bold pb1">
                                Early Backers & Advisors (10%)
                            </div>
                            <div>
                                Our backers and advisors have provided capital, resources and guidance
                                that have allowed us to fill out our team, setup a robust legal entity
                                and build a fully functional product before launching a token. As a result,
                                we have a proven track record and can offer a token that holds genuine utility.
                            </div>
                        </div>
                    </div>
                ),
            },
            {
                prompt: 'Can I mine ZRX tokens?',
                answer: (
                    <div>
                        No, the total supply of ZRX tokens is fixed and there is no continuous issuance
                        model. Users that facilitate trading over 0x protocol by operating a Relayer
                        earn transaction fees denominated in ZRX; as more trading activity is generated,
                        more transaction fees are earned.
                    </div>
                ),
            },
            {
                prompt: 'Will there be a lockup period for ZRX tokens sold in the token launch?',
                answer: (
                    <div>
                        No, ZRX tokens sold in the token launch will immediately be liquid.
                    </div>
                ),
            },
            {
                prompt: 'Will there be a lockup period for tokens allocated to the founding team?',
                answer: (
                    <div>
                        Yes. ZRX tokens allocated to founders, advisors and staff members will be released
                        over a 4 year vesting schedule with a 25% cliff upon completion of the initial
                        token launch and 25% released each subsequent year in monthly installments. Staff
                        members hired after the token launch will have a 4 year vesting schedule with a
                        one year cliff.
                    </div>
                ),
            },
            {
                prompt: 'Which cryptocurrencies will be accepted in the token launch?',
                answer: (
                    <div>ETH.</div>
                ),
            },
            {
                prompt: 'When will 0x be live?',
                answer: (
                    <div>
                        An alpha version of 0x has been live on our private test network since January
                        2017. Version 1.0 of 0x protocol will be deployed to the canonical Ethereum
                        blockchain after a round of security audits and prior to the public token launch.
                        0x will be using the 0x protocol during our token launch.
                    </div>
                ),
            },
            {
                prompt: 'Where can I find a development roadmap?',
                answer: (
                    <div>
                        Check it out{' '}
                        <a
                            href="https://drive.google.com/open?id=14IP1N8mt3YdsAoqYTyruMnZswpklUs3THyS1VXx71fo"
                            target="_blank"
                        >
                            here
                        </a>.
                    </div>
                ),
            },
        ],
    },
    {
        name: 'Team',
        questions: [
            {
                prompt: 'Where is 0x based?',
                answer: (
                    <div>
                        0x was founded in SF and is driven by a diverse group of contributors.
                    </div>
                ),
            },
            {
                prompt: 'How can I get involved?',
                answer: (
                    <div>
                        Join our <a href={constants.ZEROEX_CHAT_URL} target="_blank">Rocket.chat</a>!
                        As an open source project, 0x will rely on a worldwide community of passionate
                        developers to contribute proposals, ideas and code.
                    </div>
                ),
            },
            {
                prompt: 'Why the name 0x?',
                answer: (
                    <div>
                        0x is the prefix for hexadecimal numeric constants including Ethereum addresses.
                        In a more abstract context, as the first open protocol for exchange 0x represents
                        the beginning of the end for the exchange industry’s rent seeking oligopoly:
                        zero exchange.
                    </div>
                ),
            },
            {
                prompt: 'How do you pronounce 0x?',
                answer: (
                    <div>
                        We pronounce 0x as “zero-ex,” but you are free to pronounce it however you please.
                    </div>
                ),
            },
        ],
    },
];

export class FAQ extends React.Component<FAQProps, FAQState> {
    public componentDidMount() {
        window.scrollTo(0, 0);
    }
    public render() {
        return (
            <div>
                <DocumentTitle title="0x FAQ"/>
                <TopBar
                    blockchainIsLoaded={false}
                    location={this.props.location}
                />
                <div
                    id="faq"
                    className="mx-auto max-width-4 pt4"
                    style={{color: colors.grey800}}
                >
                    <h1 className="center" style={{...styles.thin}}>0x FAQ</h1>
                    <div className="sm-px2 md-px2 lg-px0 pb4">
                        {this.renderSections()}
                    </div>
                </div>
                <Footer location={this.props.location} />
            </div>
        );
    }
    private renderSections() {
        const renderedSections = _.map(sections, (section: FAQSection, i: number) => {
            const isFirstSection = i === 0;
            return (
                <div key={section.name}>
                    <h3>{section.name}</h3>
                    {this.renderQuestions(section.questions, isFirstSection)}
                </div>
            );
        });
        return renderedSections;
    }
    private renderQuestions(questions: FAQQuestion[], isFirstSection: boolean) {
        const renderedQuestions = _.map(questions, (question: FAQQuestion, i: number) => {
            const isFirstQuestion = i === 0;
            return (
                <Question
                    key={question.prompt}
                    prompt={question.prompt}
                    answer={question.answer}
                    shouldDisplayExpanded={isFirstSection && isFirstQuestion}
                />
            );
        });
        return renderedQuestions;
    }
}