Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Polygon Guild Abuja Workshop

Polygon Guild Abuja Workshop

Build a Full Stack Interchain DApp on Polygon with Axelar

Avatar for Olubisi Idris Ayinde

Olubisi Idris Ayinde

September 30, 2023
Tweet

More Decks by Olubisi Idris Ayinde

Other Decks in Technology

Transcript

  1. Workshop Agenda - How it all started in the web3

    - The Axelar stack - Send tokens - General message passing & use-cases - Demo
  2. Token Transfer: Deposit Address A deposit address is a temporary

    special address created and monitored by Axelar's Relayer Services on behalf of the requester. const sdk = new AxelarAssetTransfer({ environment: "testnet" }); const depositAddress = await sdk.getDepositAddress({ fromChain, // source chain name toChain, // destination chain name destinationAddress, // destination chain address Asset // asset to transfer });
  3. Token Transfer: sendToken() sendToken is a function in Axelar's gateway

    EVM contract that facilitates token transfers between EVM and Cosmos chains sendToken( "avalanche", // destination chain name "0xF16DfB26e1FEc993E085092563ECFAEaDa7eD7fD", // destination address "USDC", // asset symbol 100000000 // amount (in atomic units) )
  4. Token Transfer: Interchain Tokens Interchain Tokens allow you to send

    tokens cross-chain, build your own asset bridges, build asset transfers into your interchain dApp and many more. How is this different? - Create a standardized ERC-20 token on multiple chains via the Interchain Portal - Build a custom token on every chain with built-in methods for sending - Upgrade an existing token by deploying a wrapper on every chain - Make Interchain Tokens executable alongside GMP messages for enhanced functionality.
  5. General Message Passing: callContract Axelar's General Message Passing (GMP) enables

    a developer building on one chain to call any function on any other connected chain. function callContract( string memory destinationChain, string memory contractAddress, bytes memory payload ) external; function _execute( string memory sourceChain, string memory sourceAddress, bytes calldata payload ) internal virtual {}
  6. General Message Passing: callContractWithToken Axelar's General Message Passing (GMP) enables

    a developer building on one chain to call any function on any other connected chain. function callContractWithToken( string memory destinationChain, string memory contractAddress, bytes memory payload, string memory symbol, uint256 amount ) external; function _executeWithToken( string memory sourceChain, string memory sourceAddress, bytes calldata payload, string memory tokenSymbol, uint256 amount ) internal virtual {}
  7. DEMO ! https://bit.ly/polygon-workshop-with-axelar What are we doing? • Clone the

    simple Next.js UI • Write the smart contract • Deploy the smart contract on Polygon • Wire / connect the smart contract to a frontend • Test the application
  8. What Next ??? It’s Easy to Build Interchain-Native dApps For

    support, visit #developers on Axelar's Discord