No-Code Intents Builder

Overview

Building Blocks

Inputs and Outputs

Cloning

Grouping

Simulation

Assets

Build-in plugins that implement asset based actions and information

Ether

Native coin actions such as transferring and converting to/from a wrappedarrow-up-right token

Native coin balance of any address

circle-info

Transferring and converting native coins available on account assets Transferring and converting directly from wallet is available on blockchains that support EIP-3074arrow-up-right

Token

ERC20arrow-up-right standard interfaces for actions (transfer, approve, etc.) and information (balance of, allowance, etc.)

NFT

ERC721arrow-up-right and ERC1155arrow-up-right standards interfaces for actions (transfer from, approve, etc.) and information (balance of, owner of, etc.)

Tools

Build-in plugins for extension contracts that extends the functionality of the system

Math

Math extension allows to execute math operations such as addition, subtraction, etc. Math extension is decimal-aware, making it perfectly for doing math operations on token value. For example, 3 USDC (6 decimals) + 5 DAI (18 decimals) will automatically convert the highest decimal and result in number 8 with 18 decimals in this case. Math extension supports converting the results to a desired decimals.

circle-exclamation

Validator

Validator extension allows to compare various type of values. When using tokens amount as values, validation extension automatically matches the decimals. For example, 3 USDC (6 decimals) will considered higher than 2 DAI (18 decimals), although the value on the blockchain level is lower (6,000,000 vs 2,000,000,000,000,000,000)

circle-info

Validator supports: token amounts, numbers, addresses and hashes.

Secure Storage

Secure storage extension allows to store and retrieve values on-chain. Supported values type are numbers, addresses, strings or hashes There are two types of storage: Account level and Intent level.

Account level storage keeps data associated with the account that can be updated by the account on any intent or direct transaction.

circle-info

Account level storage is recommended for use cases where different intents are needed to perform a single task

Intent level storage keeps data associated with a single intent. Data can be updated only within the specific intent.

circle-info

Intent level storage is recommended for use cases where there is a need to keep information about intent execution values or in combination with the recurrency feature

Batch

Solver (Advanced 👾)

Solver box is replaced with any set of calls by the solver at execution. It opens up a lot of possibilities such as reverse flash loans, p2p swaps, etc.

circle-exclamation
circle-exclamation

Protocols

Aave

Compound

Curve

Uniswap

Bridges

cBridge

Oracles

System

Global

Global variables holds blockchain values that are connected to the running native transaction.

circle-info

Available values: block timestamp, block number, gas price, miner address, solver address and intent hash

Variables

Set of values that can be set by the solver at the execution of the intent

circle-info

Supports up to 16 variables per intent

Functions

Low level function that runs as part of intent execution without the need to call external contracts

Compute and Compute hash

Low level math operators such as +, -, *, /, etc.

Validate and Validate numbers

Low level comparison operators such as >, <, =, etc.

circle-check

Flow Control

Every intent starts with a "start" box that is connected to the first call to activate. Every intent call can succeed or fail. If calls "success" or "failed" are connected to another call, this later will be activated accordingly. If "success" is not connected, intent will stop execution on call success. If "failed" is not connected, intent won't be executed if call fail.

circle-info

To override the default behavior "End" and "Revert" endpoints can be used.

Custom Plugins (Advanced 👾)

Contract's interface can be imported to the system and used as any other built-in plugin. When entering contract address, the system will try to retrieve all available functions from the public block explorer.

circle-info

If you're working on a private contract, you can use a custom ABI.

Last updated