{"service":"wever-split-payments","version":"1.0.0","primitive":"split","network":"eip155:8453","chain_id":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","router":null,"router_code_hash":null,"execution_available":false,"readiness_basis":"Configuration only on this public contract. Each execution verifies live Base chain ID and exact router runtime bytecode before submitting.","execution_note":"Split creation and status are available. Money movement awaits deployment and verification of the atomic router. Do not send USDC to a router or custody wallet directly.","max_split_atomic":"300000000","max_recipients":32,"min_recipients":2,"schemas":{"split-create":{"type":"object","additionalProperties":false,"properties":{"amount_usdc":{"type":"string","pattern":"^(0|[1-9][0-9]{0,8})(\\.[0-9]{1,6})?(?![\\s\\S])"},"mode":{"enum":["percent","fixed"]},"recipients":{"type":"array","minItems":2,"maxItems":32,"items":{"type":"object","additionalProperties":false,"properties":{"wallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}(?![\\s\\S])"},"percentage":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]{0,2})(\\.[0-9]{1,2})?(?![\\s\\S])"},{"type":"number","exclusiveMinimum":0,"maximum":100}]},"amount_usdc":{"type":"string","pattern":"^(0|[1-9][0-9]{0,8})(\\.[0-9]{1,6})?(?![\\s\\S])"}},"required":["wallet"]}},"idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}(?![\\s\\S])"},"usage":{"enum":["synthetic","operational","unspecified"]}},"required":["amount_usdc","mode","recipients","idempotency_key"]},"split-execute":{"type":"object","additionalProperties":false,"properties":{"split_id":{"type":"string","pattern":"^sp_[a-f0-9]{64}(?![\\s\\S])"},"idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}(?![\\s\\S])"},"raw_transaction":{"type":"string","minLength":4,"maxLength":32768,"pattern":"^0x(?:[a-fA-F0-9]{2})+(?![\\s\\S])"}},"required":["split_id","idempotency_key","raw_transaction"]},"split-status":{"type":"object","additionalProperties":false,"properties":{"split_id":{"type":"string","pattern":"^sp_[a-f0-9]{64}(?![\\s\\S])"},"execution_idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}(?![\\s\\S])"}},"required":["split_id"]}},"pricing":{"pricesAtomic":{"/api/split-create":"100000","/api/split-execute":"100000","/api/split-status":"100000"},"freeTier":{"calls":10,"windowDays":30,"scope":"all_paid_endpoints","walletProofMaxAgeSeconds":300},"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","scheme":"exact","x402Version":2,"principal_is_api_fee":false,"note":"0.10 USDC per paid API call, with the existing shared 10 signed-wallet free calls per rolling 30 days. API fees and network gas are separate from split principal and are not refunded by a reverted split."},"wallet_proof":{"header":"X-Wever-Wallet-Proof","every_call":true,"body_and_api_path_bound":true},"machine_endpoint":"https://weverlabs.com/mcp-splits","human_page":"https://weverlabs.com/split-payments/","allocations":"Use percentages with up to two decimal places totaling exactly 100, or fixed USDC amounts totaling exactly amount_usdc. USDC has six decimals. Percent allocations round down except the last recipient, who receives the remainder. Every leg must be positive.","execution":"Each split is single use. The payer signs the USDC ReceiveWithAuthorization for the exact committed plan, then signs a Base transaction calling the router. split-execute accepts only that exact serialized signed transaction, saves it before broadcast and returns its hash. The server has no principal signing key. Read the SDK example for the nonce, ABI and transaction preparation.","atomicity":"The router pulls the incoming USDC and sends every leg inside one EVM transaction. Any leg failure reverts the pull and every transfer, leaving principal with the payer. It never creates a separately funded escrow or queues a refund. Sending USDC directly to a contract is unsupported.","idempotency":"Keep the split ID, execution key, exact signed transaction and original wallet-proof nonce. Refresh only the proof timestamp/signature when its freshness window expires. Retries reuse that transaction. A split cannot accept a second execution identity or replacement transaction. An unknown receipt stays pending and is never reported as refunded.","status":"Only the payer can read the private record. Status may reconcile the saved transaction hash using canonical receipts; it cannot broadcast. Confirmed success requires exact router and USDC events and at least two block confirmations and a finalized Base block.","capacity":{"retained_splits":512,"storage_bytes":4194304,"history_eviction":false},"evidence":{"real_money_acceptance":false,"local_evm_tests":true,"external_audit":false},"extension":"Versioned primitive, immutable principal terms and independent execution state allow later conditional payments and invoicing to reference split IDs without changing existing authorizations."}