ERC-20 allowance via allowance(owner, spender) eth_call — how much a spender is approved to move. Ethereum or Base mainnet. Pay 0.003 USDC.
Compatibility reference. This paid URL remains callable for existing integrations, but is no longer listed in public discovery. PageDelta is the current offer. Verify the live 402 before paying.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/allowance \
-H 'content-type: application/json' \
-d '{"chain":"base","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","owner":"0xDa2F35d283c42dd60B965322394bc658a5c1769F","spender":"0xDa2F35d283c42dd60B965322394bc658a5c1769F"}'
# This request returns a 402 challenge. It does not sign or spend.
# For paid delivery, select a compatible accepts[] option and pay its advertised amount.
# Listed primary: 0.003 USDC to 0xDa2F35d283c42dd60B965322394bc658a5c1769F on Base mainnet (eip155:8453).
# A compatible x402 client retries the identical request with PAYMENT-SIGNATURE.
# The selected facilitator verifies and settles before paid delivery.
This call does not sign or spend. It lets your agent inspect the exact live price, recipient, asset, and network choices before choosing a compatible x402 buyer.
const res = await fetch('https://app.heinrichstech.com/v1/cdp/chain/allowance', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({"chain":"base","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","owner":"0xDa2F35d283c42dd60B965322394bc658a5c1769F","spender":"0xDa2F35d283c42dd60B965322394bc658a5c1769F"}),
});
if (res.status !== 402) throw new Error(`Expected 402, received ${res.status}`);
const challenge = await res.json();
console.table(challenge.accepts.map(({ network, asset, amount, payTo }) => ({
network, asset, amount, payTo,
})));
This route remains documented for compatibility, but is not in the featured feeds. The fresh 402 challenge remains canonical for its current terms.