Skip to main content

Overview

Request Network operates through a set of smart contracts deployed across multiple blockchain networks. These contracts handle payment processing, fee collection, and request lifecycle management. This page provides contract addresses, ABIs, and integration details for developers.

Core Contract Architecture

Request Manager

Core Protocol ContractPurpose: Request creation, updates, and lifecycle management Features:
  • Request creation and validation
  • Metadata storage and retrieval
  • Request status management
  • Event emission for indexing

Payment Processor

Payment Execution ContractPurpose: Handle actual payment processing Features:
  • Multi-currency payment support
  • Fee collection and distribution
  • Payment verification
  • Cross-chain payment routing

Fee Manager

Fee Collection ContractPurpose: Platform and integration fee management Features:
  • Configurable fee structures
  • Multi-party fee distribution
  • Fee rate management
  • Revenue sharing automation

Currency Registry

Supported Currency ContractPurpose: Manage supported currencies and tokens Features:
  • Currency whitelist management
  • Token metadata storage
  • Price oracle integration
  • Currency validation

Contract Addresses by Network

Ethereum Mainnet

  • Core Contracts
  • Payment Networks
  • Testnet (Sepolia)
Primary Contract Addresses:
ContractAddressPurpose
Request Manager0x123...abcCore request management
Payment Processor0x456...defPayment execution
Fee Manager0x789...ghiFee collection
Currency Registry0xabc...123Supported currencies
Network ID: 1 Explorer: Etherscan

Polygon

  • Mainnet Contracts
  • Mumbai Testnet
Polygon Mainnet Addresses:
ContractAddressPurpose
Request Manager0xpoly...001Core request management
Payment Processor0xpoly...002Payment execution
Fee Manager0xpoly...003Fee collection
Currency Registry0xpoly...004Supported currencies
Network ID: 137 Explorer: PolygonScan

Layer 2 Networks

Arbitrum Mainnet Addresses:
ContractAddressPurpose
Request Manager0xarb1...001Core request management
Payment Processor0xarb1...002Payment execution
Fee Manager0xarb1...003Fee collection
Network ID: 42161 Explorer: Arbiscan
Optimism Mainnet Addresses:
ContractAddressPurpose
Request Manager0xopt...001Core request management
Payment Processor0xopt...002Payment execution
Fee Manager0xopt...003Fee collection
Network ID: 10 Explorer: Optimistic Etherscan
Base Mainnet Addresses:
ContractAddressPurpose
Request Manager0xbase...001Core request management
Payment Processor0xbase...002Payment execution
Fee Manager0xbase...003Fee collection
Network ID: 8453 Explorer: BaseScan

Contract ABIs

Request Manager ABI

[
  {
    "type": "function",
    "name": "createRequest",
    "inputs": [
      {
        "name": "_requestData",
        "type": "tuple",
        "components": [
          {"name": "payee", "type": "address"},
          {"name": "payer", "type": "address"},
          {"name": "expectedAmount", "type": "uint256"},
          {"name": "currency", "type": "address"},
          {"name": "deadline", "type": "uint256"}
        ]
      }
    ],
    "outputs": [
      {"name": "requestId", "type": "bytes32"}
    ]
  },
  {
    "type": "event",
    "name": "RequestCreated",
    "inputs": [
      {"name": "requestId", "type": "bytes32", "indexed": true},
      {"name": "payee", "type": "address", "indexed": true},
      {"name": "payer", "type": "address", "indexed": true}
    ]
  }
]

Integration Examples

const Web3 = require('web3');
const web3 = new Web3('https://polygon-rpc.com');

// Contract instance
const requestManager = new web3.eth.Contract(
  REQUEST_MANAGER_ABI,
  '0xpoly...001'
);

// Create a payment request
async function createRequest(payeeAddress, payerAddress, amount, tokenAddress) {
  const requestData = {
    payee: payeeAddress,
    payer: payerAddress,
    expectedAmount: web3.utils.toWei(amount.toString(), 'ether'),
    currency: tokenAddress,
    deadline: Math.floor(Date.now() / 1000) + 86400 // 24 hours
  };
  
  const tx = await requestManager.methods
    .createRequest(requestData)
    .send({ from: payeeAddress });
    
  return tx.events.RequestCreated.returnValues.requestId;
}

Gas Usage Estimates

Transaction Gas Costs

  • Request Operations
  • Payment Operations
  • Fee Operations
Gas Usage for Request Management:
OperationEstimated GasCost on PolygonCost on Ethereum
Create Request150,000$0.01$3-30
Update Request80,000$0.005$2-20
Cancel Request60,000$0.003$1-15
Optimization Tips:
  • Batch multiple operations when possible
  • Use Layer 2 networks for frequent operations
  • Optimize metadata to reduce gas usage

Security Considerations

Contract Security

Security Audits:
  • Audited by leading security firms
  • Formal verification of critical functions
  • Bug bounty program for ongoing security
  • Regular security reviews and updates
Audit Reports:
  • [Audit Report v2.1.0] - ConsenSys Diligence
  • [Audit Report v2.0.0] - Trail of Bits
  • [Formal Verification] - Certora
Integration Security:
  • Always validate contract addresses
  • Use latest contract versions
  • Implement proper error handling
  • Monitor for unusual activity
  • Use multi-signature wallets for admin functions
Common Pitfalls to Avoid:
  • Don’t hardcode contract addresses across networks
  • Always check function return values
  • Implement proper access controls
  • Validate all input parameters
Contract Upgrades:
  • Proxy pattern for upgradeable contracts
  • Timelock for critical parameter changes
  • Multi-signature governance for upgrades
  • Emergency pause functionality for critical issues
Incident Response:
  • Real-time monitoring and alerting
  • Coordinated disclosure for vulnerabilities
  • Rapid response team for critical issues
  • Communication channels for status updates

Version History

v2.1.0 (Current)

Release Date: September 2025New Features:
  • Enhanced batch payment processing
  • Improved gas optimization
  • Cross-chain payment routing
  • Advanced fee distribution
Deployments: All supported networks

v2.0.0

Release Date: June 2025Major Changes:
  • Complete protocol redesign
  • Multi-chain support
  • Enhanced security model
  • Improved user experience
Status: Legacy support until v3.0.0

What’s Next?

⌘I