Update Guides

This commit is contained in:
fabioberger
2019-08-27 11:55:39 +02:00
parent f78ff91975
commit 8a6d0b67f1
7 changed files with 161 additions and 271 deletions

View File

@@ -1,6 +1,9 @@
For projects writing in Javascript/typescript, we have published the [@0x/contract-addresses](https://www.npmjs.com/package/@0x/contract-addresses) package to NPM which includes with all these addresses.
# Deployed contract addresses
# Mainnet
For Javascript/typescript developers, we have published the [@0x/contract-addresses](https://www.npmjs.com/package/@0x/contract-addresses) package to NPM with all these addresses.
For Python developers, we have published the [0x-contract-addresses](https://pypi.org/project/0x-contract-addresses/) package to Pypi with all these addresses.
## Mainnet
- AssetProxyOwner: [0xdffe798c7172dd6deb32baee68af322e8f495ce0](https://etherscan.io/address/0xdffe798c7172dd6deb32baee68af322e8f495ce0)
- ERC20Proxy: [0x95e6f48254609a6ee006f7d493c8e5fb97094cef](https://etherscan.io/address/0x95e6f48254609a6ee006f7d493c8e5fb97094cef)
@@ -14,7 +17,7 @@ For projects writing in Javascript/typescript, we have published the [@0x/contra
- Coordinator: [0xa14857e8930acd9a882d33ec20559beb5479c8a6](https://etherscan.io/address/0xa14857e8930acd9a882d33ec20559beb5479c8a6)
- DutchAuction: [0xa3856622276a64fee0f17f67329fac24368d4aae](https://etherscan.io/address/0xa3856622276a64fee0f17f67329fac24368d4aae)
# Kovan
## Kovan
- AssetProxyOwner: [0x2c824d2882baa668e0d5202b1e7f2922278703f8](https://kovan.etherscan.io/address/0x2c824d2882baa668e0d5202b1e7f2922278703f8)
- ERC20Proxy: [0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e](https://kovan.etherscan.io/address/0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e)
@@ -28,7 +31,7 @@ For projects writing in Javascript/typescript, we have published the [@0x/contra
- Coordinator: [0x2ba02e03ee0029311e0f43715307870a3e701b53](https://kovan.etherscan.io/address/0x2ba02e03ee0029311e0f43715307870a3e701b53)
- DutchAuction: [0xe5f862f7811af180990025b6259b02feb0a0b8dc](https://kovan.etherscan.io/address/0xe5f862f7811af180990025b6259b02feb0a0b8dc)
# Ropsten
## Ropsten
- AssetProxyOwner: [0xf5fa5b5fed2727a0e44ac67f6772e97977aa358b](https://ropsten.etherscan.io/address/0xf5fa5b5fed2727a0e44ac67f6772e97977aa358b)
- ERC20Proxy: [0xb1408f4c245a23c31b98d2c626777d4c0d766caa](https://ropsten.etherscan.io/address/0xb1408f4c245a23c31b98d2c626777d4c0d766caa)
@@ -42,7 +45,7 @@ For projects writing in Javascript/typescript, we have published the [@0x/contra
- Coordinator: [0x2ba02e03ee0029311e0f43715307870a3e701b53](https://ropsten.etherscan.io/address/0x2ba02e03ee0029311e0f43715307870a3e701b53)
- DutchAuction: [0xe5f862f7811af180990025b6259b02feb0a0b8dc](https://ropsten.etherscan.io/address/0xe5f862f7811af180990025b6259b02feb0a0b8dc)
# Rinkeby
## Rinkeby
- AssetProxyOwner: [0x1da52d1d3a3acfa0a1836b737393b4e9931268fc](https://rinkeby.etherscan.io/address/0x1da52d1d3a3acfa0a1836b737393b4e9931268fc)
- ERC20Proxy: [0x3e809c563c15a295e832e37053798ddc8d6c8dab](https://rinkeby.etherscan.io/address/0x3e809c563c15a295e832e37053798ddc8d6c8dab)

View File

@@ -1,81 +0,0 @@
# Intro
They provide a way for users to add, remove and update this orderbook through an API, GUI or both. In doing so, relayers help traders discover counter-parties and ferry cryptographically signed orders between them. Once two parties agree on the terms of an order, the order is settled directly on the Ethereum blockchain via the 0x protocol smart contracts.
## Advantages of decentralized exchange
There are many advantages to a decentralized exchange over centralized exchange. One of the largest problems with centralized Exchanges is that they must hold and secure the funds of all the traders on their platform. This causes there to be a single point of failure that if hacked or mismanaged, means that all these traders could lose their funds. Hundreds of millions have already been stolen in this way. With a decentralized exchange, traders do not need to deposit funds with a centralized entity, but instead can trade directly from their individual wallets (including hardware wallets!). This means the user is in control of their funds at all times, eliminating this single point of failure from the equation.
## 0x protocol overview
In 0x protocol, orders are transported off-chain over any arbitrary medium, massively reducing gas costs and reducing blockchain bloat. Relayers help broadcast orders and can choose to collect a fee each time they facilitate a transaction. Anyone can build a relayer.
The simplest example of a relayer is a website allowing users to create, discover and fill orders. The relayer must build out a UI and host a backend database to provide this functionality.
<div align="center">
<img
src="https://s3.eu-west-2.amazonaws.com/0x-wiki-images/relayer_diagram.png"
style={{ paddingBottom: '20px', paddingTop: '20px', maxWidth: '342px' }}
width="80%"
/>
</div>
To simplify the process of interacting with the 0x protocol, we have written a Javascript/Typescript library called [0x.js](https://www.npmjs.com/package/0x.js). This library helps relayers interact with the 0x protocol smart contracts through a higher-level, easier to use interface. It also provides many useful utilities for hashing, signing, validating, and serializing 0x orders. Additionally, we have built the [0x-launch-kit](https://github.com/0xproject/0x-launch-kit), an open-source, free-to-use API-only 0x relayer template that you can use as a starting point for your own project.
Before getting started with [0x.js](https://www.npmjs.com/package/0x.js), [0x-launch-kit](https://github.com/0xproject/0x-launch-kit) or the 0x protocol, it is helpful to introduce a few concepts. There are two parties involved in every trade, a maker and a taker. The maker creates an order for an amount of TokenA in exchange for an amount of TokenB. The maker then submits these to a relayer. Takers discover orders via a relayer and fill them by sending them directly to the 0x protocol smart contracts. The 0x protocol smart contracts performs an atomic swap, exchanging the maker and taker tokens.
## Order
Below is an interface description of the 0x protocol order format:
```typescript
interface Order {
senderAddress: string;
// Ethereum address of the Maker
makerAddress: string;
// Ethereum address of the Taker. If no address specified, anyone can fill the order.
takerAddress: string;
// How many ZRX the Maker will pay as a fee to the relayer
makerFee: BigNumber;
// How many ZRX the Taker will pay as a fee to the relayer
takerFee: BigNumber;
// The amount of an asset the Maker is offering to exchange
makerAssetAmount: BigNumber;
// The amount of an asset the Maker is willing to accept in return
takerAssetAmount: BigNumber;
// The identifying data about the asset the Maker is offering
makerAssetData: string;
// The identifying data about the asset the Maker is requesting in return
takerAssetData: string;
// A salt to guarantee OrderHash uniqueness. Usually a milisecond timestamp of when order was made
salt: BigNumber;
// The address of the 0x protocol exchange smart contract
exchangeAddress: string;
// The address (user or smart contract) that will receive the fees
feeRecipientAddress: string;
// When the order will expire (unix timestamp in seconds)
expirationTimeSeconds: BigNumber;
}
```
It is a relayer's job to collect cryptographically signed versions of these orders into an off-chain database. This collection of orders is what we refer to as an orderbook. A relayer displays their orderbook to potential takers. The incentive here is for a relayer to collect fees from the orders they host. By specifying themselves as the fee recipient, relayers can earn fees in ZRX tokens.
Check out this tutorial on how to [Create, Validate, and Fill Orders](https://0x.org/wiki#Create,-Validate,-Fill-Order). If you want to jump straight into a working relayer codebase, check out [0x-launch-kit](https://github.com/0xProject/0x-launch-kit/).
If you want to take a deep-dive into the 0x protocol, take a look at the [0x Protocol Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).
## Relayer strategies
The 0x protocol leaves room for some flexibility on how exactly relayers operate. There are a few different strategies relayers have employed so far, each with their respective advantages and drawbacks. You can read more about the different strategies in the [Relayer Strategies](https://0x.org/wiki#Matching) section of the wiki to discover the strategy that suits your needs the best.
## Shared liquidity
Because all relayers represent orders using the 0x protocol order format, an order created on one relayer (using the open-orderbook strategy) can be filled by users on another relayer. What this means is that rather than each relayer having a siloed liquidity pool, they can share orders to create a shared liquidity pool. New relayers can bootstrap their liquidity off of existing relayers, immediately becoming an interesting place to trade. It is important to note that fees always go to the relayer where the order was first submitted. We have defined a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) to help relayers share liquidity and to simplify the integration process for market makers, providing a unified interface for them to build against.
## Pruning your orderbooks
Over time, orders may expire, partially filled, cancelled or no longer fillable. It is best to keep your orderbook free of expired or unfillable orders. Iterating over the orderbook periodically and checking each order's validity is a simple way to accomplish this. For a more advanced and efficient approach, you could use an [OrderWatcher](https://0x.org/wiki#0x-OrderWatcher). [0x-launch-kit](https://github.com/0xProject/0x-launch-kit/) is built using OrderWatcher out-of-the-box.
## Next steps
Now that you have a high level idea of what a relayer does, it's time to get started learning how they work. Check out [0x-launch-kit](https://github.com/0xProject/0x-launch-kit/) for a fully-working relayer example, or dive into the [Create, Validate, and Fill Orders](https://0x.org/wiki#Create,-Validate,-Fill-Order) tutorial to master the basics of dealing with 0x orders. You may also want to decide on a [Relayer Strategy](https://0x.org/wiki#Open-Orderbook). We recommend the open orderbook strategy. If you're looking for more orders to add to your orderbook, take a look at the [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) and [0x Connect](https://0x.org/docs/connect). There are several relayers that have already implemented it and are broadcasting orders. Remember to keep your orderbook free of stale orders by using an [OrderWatcher](https://0x.org/wiki#0x-OrderWatcher).

View File

@@ -1,35 +0,0 @@
# Ethereum Intro
Welcome to the exciting world of building applications on the [Ethereum Blockchain](https://www.ethereum.org/). With Ethereum you can deploy applications or "Smart Contracts" that perform operations and persist state using a decentralized network of computers. Ethereum is often described as a platform for programming digital money. A transaction executes and is confirmed and verified by hundreds of different machines (nodes) distributed around the world. If you want to understand the how blockchains fundamentally work checkout [this visual explanation](https://anders.com/blockchain/). If you'd like to read more about Ethereum specifically, visit this [beginners guide to Ethereum](https://blog.coinbase.com/a-beginners-guide-to-ethereum-46dd486ceecf).
Now that you have a basic understanding of what Ethereum is and does, let's talk about tokens. Fungible tokens (commonly referred to as [ERC20](https://github.com/ethereum/EIPs/issues/20)) are simple smart contracts that track the transfer of a unit of account. You can request this smart contract to [transfer](https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/BasicToken.sol#L31) tokens from your account to anyone else's. Others may also transfer tokens from their account to you. All of these requests are transactions on the Ethereum blockchain and cost a small transaction fee. For more information check out the [beginner's guide to Ethereum Tokens](https://blog.coinbase.com/a-beginners-guide-to-ethereum-tokens-fbd5611fe30b).
## 0x protocol
The 0x Protocol extends on this functionality by performing multiple balance transfers in a single atomic operation. If Alice wants to exchange 100 units of TokenA for 200 units of TokenB with Bob, Alice would want to make sure Bob was going to keep his end of the deal. Rather than Alice sending her amount of TokenA to Bob and hoping Bob will send TokenB to Alice sometime in the future, the 0x Protocol performs this exchange in a guaranteed atomic operation. So Alice and Bob will get exactly what they expect. The 0x Protocol is designed to minimize the amount of transactions (and fees) required for Alice and Bob to successfully exchange tokens. 0x protocol uses a process involving off-chain orders with on-chain settlement. You can find more information on the 0x Protocol by reading our [whitepaper](https://0x.org/pdfs/0x_white_paper.pdf) or the [beginners guide to 0x](https://blog.0xproject.com/a-beginners-guide-to-0x-81d30298a5e0).
## Interacting with the Ethereum blockchain
As web browsers do not natively support interacting with the Ethereum Blockchain, a browser extension called [Metamask](https://metamask.io/) is one way to fill that gap. Metamask will handle the users private keys and allow them to submit transactions to the network via an Ethereum node. Metamask communicates with the sites a user visits by injecting a Javascript object through which the site can communicate with the wallet and blockchain. For mobile users there are applications like [Coinbase Wallet](https://wallet.coinbase.com/) and [Cipher Browser](https://www.cipherbrowser.com/) that do the same thing on mobile.
In order to interact with dApps (distributed applications) a user must have Ether in a wallet they control. The user cannot interact with dApps from an exchange such as Coinbase. They must control the private keys associated with their Ethereum address.
# Development
## Test networks
Development and testing are aided by running in your own local test Ethereum node. This allows you to quickly deploy and interact with contracts without spending real ETH. [Ganache](https://github.com/trufflesuite/ganache) simulates an Ethereum node locally and provides the same JSON RPC interface as a real node. Since there can still be small differences between it and a real Ethereum node (e.g [Geth](https://github.com/ethereum/go-ethereum) or [Parity](https://github.com/paritytech/parity-ethereum) so we recommend you also test your application on a live testnet (i.e Kovan, Rinkeby, or Ropsten) before deploying on to the main Ethereum network.
Rather than spinning up your own Ethereum node infrastructure to connect to the network, many developers use [INFURA](https://infura.io/). They provide public, scalable Ethereum nodes as a service. Since Ethereum nodes were not designed to handle thousands of requests per second, Infura has built out infrastructure around the nodes to make them more performant.
It can be difficult to get a sufficient amount of test Ether to deploy your contracts on test networks and begin testing them. Because of this, we have created a faucet which can dispense small amounts of Ether to your account. Navigate over to the [0x Portal](https://0x.org/portal/balances) with Metamask installed and click "Request" to receive some free test Ether (make sure you're connected to a testnet)!
## Wrapped ETH
By now you are likely familiar with the ERC20 standard, Ether (aka ETH) and the plethora of ERC20 tokens out there. Unfortunately, ETH is not an ERC20 token and because of this cannot interact directly with the 0x protocol. What we can do however, is deposit ETH into an ERC20-compliant smart contract which credits your account with the same amount of WETH (wrapped Ether) tokens as the amount of ETH you deposited. These tokens are also redeemable 1-to-1 for Ether. In this ERC20-compliant form, Ether can be traded for other tokens using 0x protocol. This work-around for Ether is becoming increasingly common in the entire ecosystem. More information on WETH and how it works can be found [here](https://weth.io/).
Now that you have a high-level overview of Ethereum Blockchain development, it is time to check out our other tutorials and examples. Be sure to try out our [Sandbox](https://codesandbox.io/s/1qmjyp7p5j) which provides a development environment ready for you to experiment with.
## Next steps
Now that you've got a basic understanding of what is involved when developing on Ethereum, you're now ready to go onto the next step of [Building a Relayer](/docs/guides/build-a-relayer). If you'd rather jump right in, you can skip straight to learning how to [Create, Validate and Fill Orders](https://0x.org/wiki#Create,-Validate,-Fill-Order) on 0x.

View File

@@ -13,127 +13,131 @@
}
},
"guides": {
"build-a-relayer": {
"title": "Build a relayer",
"description": "A relayer is any party or entity which hosts an off-chain orderbook.",
"tags": ["Relayer", "Trader", "Protocol Developer"],
"topics": ["Coordinator Model", "Mesh"],
"difficulty": "Advanced",
"path": "guides/build-a-relayer.mdx"
"mesh-beta-participation-guide": {
"title": "0x Mesh beta participation guide",
"description": "Learn how to spin up a telemetry-enabled Mesh node and participate in the Beta!",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Intermediate",
"externalUrl": "https://0x-org.gitbook.io/mesh/getting-started/beta_telemetry_node"
},
"mesh-json-rpc-usage-guide": {
"title": "0x Mesh JSON-RPC usage guide",
"description": "Learn how to connect to your Mesh node over Websockets using JSON-RPC",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Intermediate",
"externalUrl": "https://0x-org.gitbook.io/mesh/getting-started/usage"
},
"mesh-db-sync": {
"title": "How to sync 0x Mesh with an external database",
"description": "Learn the necessary steps to sync a 0x Mesh node with an external database. In syncing the two, you will be able to query Mesh liquidity in the querying language of your choice (e.g., SQL, GraphQL, etc...) either for yourself or your users.",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Intermediate",
"externalUrl": "https://0x-org.gitbook.io/mesh/advanced-topics/db_syncing"
},
"mesh-deployment-guide": {
"title": "How to deploy a 0x Mesh node",
"description": "Learn how to spin up a non-browser Mesh node using Docker",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Beginner",
"externalUrl": "https://0x-org.gitbook.io/mesh/getting-started/deployment"
},
"contract-fillable-liquidity": {
"title": "Contract-fillable Liquidity",
"subtitle": "Swap tokens by tapping into 0x's networked liquidity",
"description": "Use Asset-Swapper to programmatically exchange assets with a single line of code or build custom integrations for more advanced token trades.",
"tags": [""],
"topics": [""],
"description": "Want to tap into 0x liquidity for your DeFi Dapp or protocol? Learn how to use @0x/asset-swapper to find the best priced 0x orders and format them so they can be filled by a smart contract.",
"tags": ["CFL"],
"topics": ["CFL"],
"difficulty": "Intermediate",
"path": "guides/contract-fillable-liquidity.mdx"
},
"develop-on-ethereum": {
"title": "Develop on Ethereum",
"description": "Welcome to the exciting world of building applications on the Ethereum Blockchain",
"tags": ["Relayer", "Trader"],
"topics": ["Mesh", "Protocol Developer"],
"0x-cheat-sheet": {
"title": "0x cheat sheet",
"description": "All the information you look up often when building on 0x (e.g., deployed contract addresses)",
"tags": ["Relayer", "Trader", "Protocol Developer"],
"topics": ["Relayer", "Trader", "Protocol Developer"],
"difficulty": "Beginner",
"path": "guides/develop-on-ethereum.mdx"
},
"deployed-addresses": {
"title": "Deployed Addresses",
"description": "",
"tags": [""],
"topics": [""],
"difficulty": "Beginner",
"path": "guides/deployed-addresses.mdx"
"path": "guides/0x-cheat-sheet.mdx"
},
"ganache-setup": {
"title": "How to Set Up Ganache",
"description": "",
"topics": ["Ganache"],
"difficulty": "Intermediate",
"isCommunity": false,
"isFeatured": false,
"tags": ["Protocol developer"],
"tags": ["Testing", "Relayer", "Protocol Developer", "Trader"],
"topics": ["Testing", "Relayer", "Protocol Developer", "Trader"],
"difficulty": "Beginner",
"path": "guides/ganache-setup.mdx"
},
"integrate-instant": {
"title": "Integrate 0x Instant",
"title": "Get started with 0x Instant",
"subtitle": "A free and flexible way to offer simple crypto purchasing in any app or website",
"description": "A convenient way to offer your users access to a wide variety of tokens and other crypto-assets in just a few clicks",
"description": "Learn how to embed 0x Instant into your website or mobile app, allowing your users to seemlessly buy any digital asset with Ether",
"tags": ["Instant"],
"topics": ["Instant"],
"difficulty": "Beginner",
"isCommunity": false,
"isFeatured": false,
"tags": ["Instant"],
"path": "guides/integrate-instant.mdx"
},
"relayer-strategies": {
"title": "Relayer Strategies",
"description": "",
"description": "Relayers can choose between multiple strategies when building on 0x. This guide will walk you through several options and they relative trade-offs.",
"tags": ["Relayers"],
"topics": ["Relayers"],
"difficulty": "Beginner",
"isCommunity": false,
"isFeatured": false,
"tags": ["Relayers"],
"path": "guides/relayer-strategies.mdx"
},
"legal-guide": {
"title": "0x Legal Guide",
"description": "",
"description": "A legal guide that will walk you through some of the relevant laws and regulations that developers building on 0x should be aware of.",
"tags": ["Legal"],
"topics": ["Legal"],
"difficulty": "Beginner",
"isCommunity": false,
"isFeatured": true,
"tags": ["Legal"],
"path": "guides/legal-guide.mdx"
},
"page-template": {
"title": "Page template",
"description": "A relayer is any party or entity which hosts an off-chain orderbook.",
"tags": ["Relayer", "Trader", "Protocol Developer"],
"topics": ["Coordinator Model", "Mesh"],
"difficulty": "Advanced",
"path": "guides/page-template.mdx"
},
"use-networked-liquidity": {
"title": "Use networked liquidity",
"description": "In this tutorial, we will show you how you can use the @0x/connect package in conjunction with 0x.js in order to",
"tags": ["Protocol Developer"],
"topics": ["Mesh"],
"using-the-standard-relayer-api": {
"title": "How to use the Standard Relayer API",
"description": "This guide will show you how to use the @0x/connect package to connect to a Relayer adhering to the Standard Relayer API",
"tags": ["Relayer", "Trader"],
"topics": ["Relayer", "Trader"],
"difficulty": "Intermediate",
"path": "guides/use-networked-liquidity.mdx"
"path": "guides/using-the-standard-relayer-api.mdx"
},
"v2-coordinatior-specification": {
"title": "0x 2.0.0 Coordinator Specification",
"description": "",
"tags": [""],
"topics": [""],
"title": "0x Coordinator Specification (v2)",
"description": "A comprehensive technical spec of the first coordinator model developer by the 0x core team (soft-cancel variant)",
"tags": ["Coordinator", "Relayer", "Trader", "Protocol Developer"],
"topics": [
"Coordinator",
"Relayer",
"Trader",
"Protocol Developer"
],
"difficulty": "Advanced",
"path": "guides/v2-coordinatior-specification.mdx"
},
"v2-forwarder-specification": {
"title": "0x 2.0.0 Forwarder Specification",
"description": "",
"tags": [""],
"topics": [""],
"title": "0x Forwarder Specification (v2)",
"description": "The technical spec for the Forwarder 0x extension contract that is used by 0x Instant to abstract away wrapping ETH, setting allowances and paying fees. Learn how it works and how you can use it directly in your own projects.",
"tags": ["Instant", "Relayer"],
"topics": ["Instant", "Relayer"],
"difficulty": "Advanced",
"path": "guides/v2-forwarder-specification.mdx"
},
"v2-specification": {
"title": "0x Protocol 2.0.0 Specification",
"description": "",
"tags": [""],
"topics": [""],
"title": "0x Protocol Specification (v2)",
"description": "A comprehensive, technical specification of the 0x protocol useful for anyone trying to understand how the protocol works in precise detail.",
"tags": ["Specs", "Relayer", "Trader", "Protocol Developer"],
"topics": ["Specs", "Relayer", "Trader", "Protocol Developer"],
"difficulty": "Advanced",
"path": "guides/v2-specification.mdx"
},
"web3-provider-explained": {
"title": "Web3 Provider Explained",
"subtitle": "Allow your application to communicate with an Ethereum Node",
"description": "Allow your application to request signatures, estimate gas and gas price, and submit transactions to an Ethereum node.",
"tags": [""],
"topics": [""],
"difficulty": "Intermediate",
"title": "Web3 Providers Explained",
"description": "Learn more about what an Web3 Provider is and how it enables your dApp to communicate with the Ethereum blockchain and request transaction signatures from users.",
"tags": ["Relayer", "Trader"],
"topics": ["Relayer", "Trader"],
"difficulty": "Beginner",
"path": "guides/web3-provider-explained.mdx"
}
},
@@ -516,4 +520,4 @@
"externalUrl": "https://github.com/0xProject/0x-coordinator-server"
}
}
}
}

View File

@@ -56,7 +56,7 @@ const shortcutLinks = [
const usefulLinks = [
{
title: '0x Cheat Sheet',
url: constants.URL_SANDBOX,
url: `${WebsitePaths.Docs}/guides`,
},
{
title: 'Code Sandbox',

View File

@@ -13,127 +13,126 @@
}
},
"guides": {
"build-a-relayer": {
"title": "Build a relayer",
"description": "A relayer is any party or entity which hosts an off-chain orderbook.",
"tags": ["Relayer", "Trader", "Protocol Developer"],
"topics": ["Coordinator Model", "Mesh"],
"difficulty": "Advanced",
"path": "guides/build-a-relayer.mdx"
"mesh-beta-participation-guide": {
"title": "0x Mesh beta participation guide",
"description": "Learn how to spin up a telemetry-enabled Mesh node and participate in the Beta!",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Intermediate",
"externalUrl": "https://0x-org.gitbook.io/mesh/getting-started/beta_telemetry_node"
},
"mesh-json-rpc-usage-guide": {
"title": "0x Mesh JSON-RPC usage guide",
"description": "Learn how to connect to your Mesh node over Websockets using JSON-RPC",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Intermediate",
"externalUrl": "https://0x-org.gitbook.io/mesh/getting-started/usage"
},
"mesh-db-sync": {
"title": "How to sync 0x Mesh with an external database",
"description": "Learn the necessary steps to sync a 0x Mesh node with an external database. In syncing the two, you will be able to query Mesh liquidity in the querying language of your choice (e.g., SQL, GraphQL, etc...) either for yourself or your users.",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Intermediate",
"externalUrl": "https://0x-org.gitbook.io/mesh/advanced-topics/db_syncing"
},
"mesh-deployment-guide": {
"title": "How to deploy a 0x Mesh node",
"description": "Learn how to spin up a non-browser Mesh node using Docker",
"tags": ["Mesh"],
"topics": ["Mesh"],
"difficulty": "Beginner",
"externalUrl": "https://0x-org.gitbook.io/mesh/getting-started/deployment"
},
"contract-fillable-liquidity": {
"title": "Contract-fillable Liquidity",
"subtitle": "Swap tokens by tapping into 0x's networked liquidity",
"description": "Use Asset-Swapper to programmatically exchange assets with a single line of code or build custom integrations for more advanced token trades.",
"tags": [""],
"topics": [""],
"description": "Want to tap into 0x liquidity for your DeFi Dapp or protocol? Learn how to use @0x/asset-swapper to find the best priced 0x orders and format them so they can be filled by a smart contract.",
"tags": ["CFL"],
"topics": ["CFL"],
"difficulty": "Intermediate",
"path": "guides/contract-fillable-liquidity.mdx"
},
"develop-on-ethereum": {
"title": "Develop on Ethereum",
"description": "Welcome to the exciting world of building applications on the Ethereum Blockchain",
"tags": ["Relayer", "Trader"],
"topics": ["Mesh", "Protocol Developer"],
"0x-cheat-sheet": {
"title": "0x cheat sheet",
"description": "All the information you look up often when building on 0x (e.g., deployed contract addresses)",
"tags": ["Relayer", "Trader", "Protocol Developer"],
"topics": ["Relayer", "Trader", "Protocol Developer"],
"difficulty": "Beginner",
"path": "guides/develop-on-ethereum.mdx"
},
"deployed-addresses": {
"title": "Deployed Addresses",
"description": "",
"tags": [""],
"topics": [""],
"difficulty": "Beginner",
"path": "guides/deployed-addresses.mdx"
"path": "guides/0x-cheat-sheet.mdx"
},
"ganache-setup": {
"title": "How to Set Up Ganache",
"description": "",
"topics": ["Ganache"],
"difficulty": "Intermediate",
"isCommunity": false,
"isFeatured": false,
"tags": ["Protocol developer"],
"tags": ["Testing", "Relayer", "Protocol Developer", "Trader"],
"topics": ["Testing", "Relayer", "Protocol Developer", "Trader"],
"difficulty": "Beginner",
"path": "guides/ganache-setup.mdx"
},
"integrate-instant": {
"title": "Integrate 0x Instant",
"title": "Get started with 0x Instant",
"subtitle": "A free and flexible way to offer simple crypto purchasing in any app or website",
"description": "A convenient way to offer your users access to a wide variety of tokens and other crypto-assets in just a few clicks",
"description": "Learn how to embed 0x Instant into your website or mobile app, allowing your users to seemlessly buy any digital asset with Ether",
"tags": ["Instant"],
"topics": ["Instant"],
"difficulty": "Beginner",
"isCommunity": false,
"isFeatured": false,
"tags": ["Instant"],
"path": "guides/integrate-instant.mdx"
},
"relayer-strategies": {
"title": "Relayer Strategies",
"description": "",
"description": "Relayers can choose between multiple strategies when building on 0x. This guide will walk you through several options and they relative trade-offs.",
"tags": ["Relayers"],
"topics": ["Relayers"],
"difficulty": "Beginner",
"isCommunity": false,
"isFeatured": false,
"tags": ["Relayers"],
"path": "guides/relayer-strategies.mdx"
},
"legal-guide": {
"title": "0x Legal Guide",
"description": "",
"description": "A legal guide that will walk you through some of the relevant laws and regulations that developers building on 0x should be aware of.",
"tags": ["Legal"],
"topics": ["Legal"],
"difficulty": "Beginner",
"isCommunity": false,
"isFeatured": true,
"tags": ["Legal"],
"path": "guides/legal-guide.mdx"
},
"page-template": {
"title": "Page template",
"description": "A relayer is any party or entity which hosts an off-chain orderbook.",
"tags": ["Relayer", "Trader", "Protocol Developer"],
"topics": ["Coordinator Model", "Mesh"],
"difficulty": "Advanced",
"path": "guides/page-template.mdx"
},
"use-networked-liquidity": {
"title": "Use networked liquidity",
"description": "In this tutorial, we will show you how you can use the @0x/connect package in conjunction with 0x.js in order to",
"tags": ["Protocol Developer"],
"topics": ["Mesh"],
"using-the-standard-relayer-api": {
"title": "How to use the Standard Relayer API",
"description": "This guide will show you how to use the @0x/connect package to connect to a Relayer adhering to the Standard Relayer API",
"tags": ["Relayer", "Trader"],
"topics": ["Relayer", "Trader"],
"difficulty": "Intermediate",
"path": "guides/use-networked-liquidity.mdx"
"path": "guides/using-the-standard-relayer-api.mdx"
},
"v2-coordinatior-specification": {
"title": "0x 2.0.0 Coordinator Specification",
"description": "",
"tags": [""],
"topics": [""],
"title": "0x Coordinator Specification (v2)",
"description": "A comprehensive technical spec of the first coordinator model developer by the 0x core team (soft-cancel variant)",
"tags": ["Coordinator", "Relayer", "Trader", "Protocol Developer"],
"topics": ["Coordinator", "Relayer", "Trader", "Protocol Developer"],
"difficulty": "Advanced",
"path": "guides/v2-coordinatior-specification.mdx"
},
"v2-forwarder-specification": {
"title": "0x 2.0.0 Forwarder Specification",
"description": "",
"tags": [""],
"topics": [""],
"title": "0x Forwarder Specification (v2)",
"description": "The technical spec for the Forwarder 0x extension contract that is used by 0x Instant to abstract away wrapping ETH, setting allowances and paying fees. Learn how it works and how you can use it directly in your own projects.",
"tags": ["Instant", "Relayer"],
"topics": ["Instant", "Relayer"],
"difficulty": "Advanced",
"path": "guides/v2-forwarder-specification.mdx"
},
"v2-specification": {
"title": "0x Protocol 2.0.0 Specification",
"description": "",
"tags": [""],
"topics": [""],
"title": "0x Protocol Specification (v2)",
"description": "A comprehensive, technical specification of the 0x protocol useful for anyone trying to understand how the protocol works in precise detail.",
"tags": ["Specs", "Relayer", "Trader", "Protocol Developer"],
"topics": ["Specs", "Relayer", "Trader", "Protocol Developer"],
"difficulty": "Advanced",
"path": "guides/v2-specification.mdx"
},
"web3-provider-explained": {
"title": "Web3 Provider Explained",
"subtitle": "Allow your application to communicate with an Ethereum Node",
"description": "Allow your application to request signatures, estimate gas and gas price, and submit transactions to an Ethereum node.",
"tags": [""],
"topics": [""],
"difficulty": "Intermediate",
"title": "Web3 Providers Explained",
"description": "Learn more about what an Web3 Provider is and how it enables your dApp to communicate with the Ethereum blockchain and request transaction signatures from users.",
"tags": ["Relayer", "Trader"],
"topics": ["Relayer", "Trader"],
"difficulty": "Beginner",
"path": "guides/web3-provider-explained.mdx"
}
},