20M APIs. Every chain. One gateway. Both directions.
Your smart contract emits a BridgeCall event. The bridge listener picks it up, routes to the right real-world API, and writes the signed result back on-chain.
// Your contract emits a bridge call. event BridgeCall( bytes32 requestId, string apiSlug, // e.g. "stripe-replacement" bytes params, // ABI-encoded args address callback ); // MeterCall calls you back with a signed result. function fulfill( bytes32 requestId, bytes result, bytes sig ) external onlyBridge { require(verifier.verify(requestId, result, sig), "bad sig"); // use the result on-chain }
A real-world event (Stripe charge, Twilio SMS, Shopify order) posts to MeterCall. We verify it, produce an EIP-712 attestation signed by the bridge's hot wallet, and your smart contract consumes it.
// 1) Stripe fires a webhook at MeterCall. POST /v1/bridge/webhook/stripe-replacement X-MeterCall-Signature: <hmac> // 2) MeterCall produces an EIP-712 attestation. { "eip712": { "domain": { "name": "MeterCallBridge", "chainId": 8453 }, "message": { "requestId": "0x…", "apiSlug": "stripe-replacement", "resultHash": "0x…" } }, "signature": "0x…" } // 3) Smart contract verifies via BridgeVerifier. verifier.verifyAttestation(requestId, slug, resultHash, ts, sig);
Read the docs. Run the playground. Ship your first bridge call today.