Skip to main content

Overview

Request Network supports payments on NEAR, a sharded, proof-of-stake blockchain that offers unique capabilities compared to EVM-compatible chains. NEAR’s architecture enables more complex smart contract interactions through asynchronous callbacks and cross-contract calls.
NEAR support is currently available through the Request Network SDK only. The Request Network API does not support NEAR blockchain interactions.

Key Differences from EVM Chains

NEAR has several important architectural differences that affect how payments work:

Asynchronous Callbacks

Unlike EVM chains where transactions are atomic, NEAR supports asynchronous callbacks that can span multiple transactions or blocks. This enables more complex payment flows but requires different handling.

Account-Based System

NEAR uses human-readable account names (like alice.near) instead of hex addresses. Smart contracts are deployed to named accounts and can be upgraded by their owners.

Storage Deposits

To receive NEP-141 fungible tokens, accounts must first register with the token contract and pay a small storage deposit (~0.00125 NEAR) to cover storage costs.

Gas Model

NEAR uses a different gas model with TGas (TeraGas) units. Gas costs are predictable and much lower than Ethereum mainnet.

Supported Payment Types

Native NEAR Payments

Direct payments using NEAR’s native token through the payment proxy smart contract. Features:
  • βœ… Direct NEAR token transfers with payment references
  • βœ… Fee collection support
  • βœ… Payment detection and indexing

Fungible Token Payments (NEP-141)

Payments using NEAR’s fungible token standard (NEP-141) equivalent to ERC-20 on Ethereum. Features:
  • βœ… Support for all NEP-141 compliant tokens
  • βœ… Fee collection in the same token
  • βœ… Payment detection and indexing
  • ⚠️ Requires storage deposit registration

Native Token Conversion Payments

Payments for requests denominated in one currency (typically fiat like USD) but paid in NEAR native tokens. On-chain oracles provide real-time price feeds to calculate the correct NEAR amount. Features:
  • βœ… Conversion payments denominated in USD, settled in NEAR
  • βœ… Price conversion at the moment of payment, using onchain price feeds
  • βœ… Payment detection and indexing

Smart Contract Addresses

Mainnet (near)

Payment TypeContract AddressActionsDescription
Native NEAR Paymentsrequestnetwork.near
Direct NEAR token payments with references
Fungible Token Paymentspay.reqnetwork.near
NEP-141 token payments with fees
Native Conversion Paymentsnative.conversion.reqnetwork.near
Fiat/token to NEAR conversions

Testnet (near-testnet)

Payment TypeContract AddressActionsDescription
Native NEAR Paymentsdev-1631521265288-35171138540673
Direct NEAR token payments with references
Fungible Token Paymentspay.reqnetwork.testnet
NEP-141 token payments with fees
Native Conversion Paymentsnative.conversion.reqnetwork.testnet
Fiat/token to NEAR conversions

Payment Detection

Payment detection for NEAR transactions is handled through dedicated subgraphs: These subgraphs index payment events and transaction data to enable efficient payment detection and status tracking.

Technical Considerations

Asynchronous Callbacks

NEAR’s asynchronous architecture means payment transactions may require multiple blockchain interactions:
// Example: Fungible token payment flow
1. Call ft_transfer_call on token contract
2. Token contract calls proxy contract 
3. Proxy processes payment and logs event
4. Callback confirms or reverts transaction
This differs from EVM chains where the entire payment happens in a single atomic transaction.

Storage Deposits

Before receiving NEP-141 tokens, accounts must register with the token contract:
Important: Payment addresses must have sufficient storage deposit registered with the token contract. The SDK automatically checks for this requirement and will throw an error if the recipient is not properly registered.
Minimum Storage Deposit: ~0.00125 NEAR per token contract

Gas Considerations

NEAR uses a TGas (TeraGas) unit system and gas costs are predictable and much lower than Ethereum mainnet, typically costing fractions of a cent in USD terms.

Integration Guide

Prerequisites

  1. NEAR Wallet Connection: Applications need to integrate with NEAR wallet providers
  2. SDK Installation: Use @requestnetwork/request-client.js with NEAR support
  3. Account Registration: Ensure payment recipients are registered for token contracts

Basic Payment Flow

import { RequestNetwork } from '@requestnetwork/request-client.js';

// Create request for NEAR native payment
const request = await requestNetwork.createRequest({
  currency: {
    type: 'ETH', // NEAR native uses ETH type
    value: 'NEAR',
    network: 'near'
  },
  expectedAmount: '1000000000000000000000000', // 1 NEAR in yoctoNEAR
  paymentAddress: 'recipient.near'
});

Limitations

Current Limitations:
  • NEAR support is SDK-only (not available in Request Network API)
  • Crosschain payments to/from NEAR are not supported
  • Advanced payment types like batch payments are not implemented

Developer Resources

⌘I