Once you've created a project, you can go ahead and start adding objects to it. Object types range from on chain artifacts such as externally owned accounts or contracts, to accessory infrastructure tools to improve your development process such as hosted ganache instances, RPC endpoints, user generated APIs, or webhooks.
To create an object in an empty project or folder, simply select the "Add Object" button as is pictured below. Doing so will open the "Add" button dropdown, where you'll see all of the options for which objects you can add.
Select the object you would like to add from the dropdown list. Each object has a different adding flow, but normally you will be prompted to provide various pieces of auxiliary information such as a name for the object or a resource address. See the object types breakdown section below s for a more detailed overview of the options you can choose from.
Smart contract objects provide easy access to deployed and template resources. Smart contract objects let you interact with deployed resources in various meaningful ways; access etherscan-esque instances of the contract's activity feed, view a concise overview of the contract's state and source code, and interface directly with the smart contract methods with metamask. Additionally, both deployed and template smart contract instances you have give you the additional option to deploy unique instances of the same code to any of the networks Terminal supports. For example, you can deploy a fresh instance of the Uniswap smart contracts to a supported testnet or personalized ganache in just a few clicks!
On Ethereum wallets and smart contracts are indistinguishable unless you gain explicit access to the storage associated with an address. As such, wallet objects on Terminal are treated in a manner similar to that of smart contract objects. When you first access a wallet object, you will have the ability to select between the activity feed, where you can view historical transactions, and a concise wallet overview page detailing the current state of the wallet.
Network objects will be central to your Terminal development process. Network objects provide a basis for your interactions with the blockchains Terminal supports. Once you instantiate a network object and select a network, you can generate multiple personalized RPC endpoints that map onto the network object. Feel free to use the RPC endpoints in whatever manner suits your development process. You can deploy contracts with truffle migrations, pass the endpoint into metamask, or even call RPC methods explicitly with curl or postman. Best of all, network endpoints on Terminal are free!
Terminal webhooks allow you to deploy vanilla subscriptions to a wide variety of on-chain actions. Subscribe to on-chain activities ranging from generic transactions on a contract, to events, and function calls. Terminal webhooks are fully customizable to serve whatever niche use case you might have. You can listen for events, receive transaction receipts, and get block reorg notifications all from one resource. Best of all, webhooks are dynamic. If you generate a webhook and realize you want to modify the response data down the line, you can do so in just a few clicks.
The Terminal API suite provides a suite of developer tools to simplify data fetching for decentralized applications. The primary purpose of Terminal's API toolsuite is to empower developers to build applications in a more idiomatic, web2 like manner. Data fetching on Ethereum is unnecessarily complex; if you've built a dapp before it was probably an enlightening yet frustrating process hydrating your application with Ethereum data. Terminal's API's let you abstract away the complex data fetching processes so you can focus on building quality user experiences into your application.
DB Studio lets you index and fetch chaindata with the convenience of graphql and apollo. DB Studio provides a suite of tools for you to build your database schema, parse and store chaindata, and query your database using apollo. Notably, our DB Studio has built in tools for pagination so you'll never have to worry about data inconsistencies or overfetching.
Some developers prefer the convenience and flexibility of a command line over a graphical interface, but may still want to access many Terminal specific features. With HexCLI you can log-in to your Terminal account, manage your projects and resources, view logs, and bulk upload contract resources. For a more detailed overview of the features HexCLI provides, check out the HexCLI quickstart guide.
View - Opens the object to view, as if clicking on the object.
Copy Link - Copies a link to share the object (if the object is private, others will need access to the private project to view through the link).
Open in New Tab - Opens the object in a new tab.
Move - Move the object to anywhere else including other Terminal drives (works with any objects and folders).
Duplicate - Copy the object to anywhere else including other Terminal drives (works for any objects, folders, and projects).
Delete - Delete any one of your objects, folders, or projects (to delete your team or personal account read more here).