Onesource
Full Ethereum transaction details by hash via eth_getTransactionByHash - from, to, value, calldata, block
https://api.onesource.ioFull Ethereum transaction details by hash via eth_getTransactionByHash - from, to, value, calldata, block
ENS resolve - turn a .eth name into an address, or an address into its primary .eth name, via eth_call on OneSource live Ethereum RPC
Check if an Ethereum address is a contract via eth_getCode - returns deployed bytecode
Transaction receipt via eth_getTransactionReceipt - status, gas, and event logs for a mined Ethereum transaction
Latest Ethereum block height - current chain tip via eth_blockNumber
Contract introspection via eth_call - name, symbol, decimals, and ERC20/721/1155 interface support
Estimate the gas a transaction will consume via eth_estimateGas before signing it
Next transaction nonce for any Ethereum wallet via eth_getTransactionCount - how many txs it has sent
Ethereum network info - chain ID, block height, and gas price in one batched RPC call (eth_chainId + eth_blockNumber + eth_gasPrice)
Look up the current owner of an ERC721 NFT by token_id via ownerOf (eth_call)
Fetch an Ethereum block header and transaction hashes by number, tag, or hex via eth_getBlockByNumber
Simulate a read-only Ethereum contract call via eth_call - no transaction sent
Pending Ethereum block - mempool transactions not yet mined, via eth_getBlockByNumber("pending")
Read a raw storage slot from any Ethereum contract via eth_getStorageAt
ERC20 token balance for any Ethereum wallet - USDC, USDT, DAI, or any token - via balanceOf (eth_call) on OneSource live Ethereum RPC
Ethereum chain ID (EIP-155) via eth_chainId - confirm which chain a network is on
ERC1155 token balance via balanceOf (eth_call) - how many copies of a token_id a wallet holds
Query Ethereum contract event logs via eth_getLogs - filter by contract, topic, and block range
Detect upgradeable proxy patterns (EIP-1967, UUPS, Transparent) via eth_getStorageAt - returns the implementation address behind a proxy
Live wallet balance - native ETH plus any ERC20 tokens in one call via eth_getBalance and balanceOf on OneSource Ethereum RPC
Total supply of an ERC20 or ERC721 token contract via totalSupply (eth_call)
ERC20 Transfer logs via eth_getLogs - decoded sender, recipient, and amount for a token or wallet
NFT metadata, traits, and image URI for any ERC721 or ERC1155 token - fetched via eth_call with IPFS resolution (OneSource live Ethereum RPC)
List every ERC721 NFT token_id a wallet owns in a collection via tokenOfOwnerByIndex (eth_call)
ERC20 allowance via allowance (eth_call) - how much a spender is approved to move from an owner's wallet
Copy this prompt and paste it into your AI agent (like Claude, GPT-4, etc.) to enable automatic X-402 payment handling.
** Your task ** Call the API at: https://api.onesource.io Follow the steps below in order. ** Step 1 - Install FluxA Wallet CLI ** npm install -g @fluxa-pay/fluxa-wallet Or use without installing: npx fluxa-wallet <command> ** Step 2 - Register agent ** fluxa-wallet init --name "<YOUR_AGENT_NAME>" --client "<YOUR_CLIENT>" The response may include an authorization URL. Present the user with options: [Yes, open the link] [No, don't open]. If YES: run 'open "<URL>"' to open in their browser. Verify: fluxa-wallet status ** Step 3 - Discover endpoints ** curl https://api.onesource.io Returns JSON with: name, description, endpoints (paths, methods, descriptions, prices), paymentRequired, and networks. ** Step 4 - Choose payment method ** Ask the user: [On-chain USDC (Base)] or [FluxA Monetize Credits] If USDC: - --currency USDC - --amount in atomic units (6 decimals, e.g., 100000 = 0.10 USDC) If Credits (1 credit = 1 USDC): - --currency FLUXA_MONETIZE_CREDITS - --amount in 2-decimal units (e.g., 10 = 0.10 credits, 100 = 1.00 credits) ** Step 5 - Create an intent mandate ** x402 v3 uses intent mandates: the user pre-approves a spending plan (budget + time window), then the agent makes autonomous payments within those limits. fluxa-wallet mandate-create \ --desc "Spend up to <BUDGET> for <DESCRIPTION> valid for <DURATION>" \ --amount <BUDGET_IN_UNITS> \ --seconds <DURATION_IN_SECONDS> \ --currency <USDC or FLUXA_MONETIZE_CREDITS> Options: - --desc (required): Human-readable spending plan description - --amount (required): Budget in units for the chosen currency (see Step 4) - --seconds (optional, default 28800 = 8h): Duration in seconds - --currency (optional, default USDC): USDC or FLUXA_MONETIZE_CREDITS ** Step 6 - Get user to sign the mandate ** The response from Step 5 includes mandateId and authorizationUrl (TTL: 10 minutes). Present the user with options: [Yes, open the link] [No, don't open]. If YES: run 'open "<authorizationUrl>"' to open in their browser. ** Step 7 - Wait for mandate to be signed ** fluxa-wallet mandate-status --id <MANDATE_ID> Poll until mandate.status is "signed". The response also includes remainingAmount. Important: Use --id, not --mandate. ** Step 8 - Call the API ** curl https://api.onesource.io Optionally add the X-Agent-ID header for agent attribution (its value is the agent_id from 'fluxa-wallet status'): curl -H "X-Agent-ID: <YOUR_AGENT_ID>" https://api.onesource.io If it returns HTTP 402, continue to Step 9. ** Step 9 - Pay via x402 v3 ** Pass the complete HTTP 402 response body as --payload: fluxa-wallet x402-v3 \ --mandate <MANDATE_ID> \ --payload '$PAYLOAD_402' The payload must contain an accepts array. Do NOT extract individual fields - pass the entire 402 response JSON. The response includes xPaymentB64 (the payment token). ** Step 10 - Retry with payment token ** Retry the same request with the X-Payment header (optionally add X-Agent-ID for attribution): curl -H "X-Payment: <xPaymentB64>" <ORIGINAL_API_URL> Return the raw API response to the user without post-processing. ** Opening links for user ** Whenever you need to open a URL (authorization, approval, or any external link): 1. Present the user with a choice using your interactive options/menu capability (e.g., AskUserQuestion tool) 2. Options: [Yes, open the link] [No, don't open] 3. If YES: run 'open "<URL>"' to open in their default browser 4. If NO: ask how they would like to proceed ** Error handling ** - mandate_not_signed: User hasn't signed yet - ask them to open authorizationUrl - mandate_expired: Time window passed - create a new mandate - mandate_budget_exceeded: Budget too low - create a new mandate with a higher limit - agent_not_registered: No Agent ID - run 'fluxa-wallet init' first - Invalid payload: missing accepts array: Pass the full 402 response JSON
Want to combine multiple APIs into one skill? Browse All APIs →

