ICapabilityAdapter. The broker is the same for all of them; scarcity differs per adapter. Each section below lists the params the consumer encodes, the receipt grant returns, the events and custom errors, and the deployed addresses. For the implementation rules and the worked grants, see sell a capability.
AllocationAdapter
A capped allocation slot in a tokenized-stock vault (an RWA framing: the right to a capped allocation position). The guaranteed floor: no oracle, no sequencer, no off-chain service.is ICapabilityAdapter, ERC721, Ownable.
params | abi.encode(uint256 vaultId) |
receipt | abi.encode(uint256 slotId) (the minted ERC721 slot id) |
| Events | SlotAllocated(address indexed consumer, uint256 indexed vaultId, uint256 indexed slotId), VaultConfigured(uint256 indexed vaultId, uint256 cap), BrokerUpdated(address indexed broker) |
| Errors | NotBroker(), AllocationSoldOut(uint256 vaultId), ZeroAddress() |
| Admin | setCap(uint256 vaultId, uint256 cap_), setBroker(address) (both onlyOwner) |
| Chain | Address |
|---|---|
| Robinhood (46630) | 0x76C4F7d48Bba5f4fa36C47D9B34ba3b5Ea46FE43 |
| Arbitrum Sepolia (421614) | 0xB133198ADB7c8eA7b0233044f3D210b7b1173705 |
GasSponsorshipAdapter
Executes a USDC-rich, gas-poor agent’s action by routing into its smart account’sexecuteFor, with gas fronted (an execution right). is ICapabilityAdapter, Ownable.
params | abi.encode(address target, bytes callData, uint256 gasLimit) |
receipt | The inner call’s return data, ABI-encoded bytes, bounded to 2048 bytes |
| Events | Sponsored(address indexed consumer, address indexed target, uint256 gasLimit), PricingUpdated(uint256 gasPriceUsdcPerGas, uint256 margin), BrokerUpdated(address indexed broker) |
| Errors | NotBroker(), ZeroAddress() |
| Admin | setPricing(uint256 gasPriceUsdcPerGas_, uint256 margin_), setBroker(address) |
| Chain | Address |
|---|---|
| Robinhood (46630) | 0xDb61c3EF83B5015EEda351eF57E303eB7380B72e |
| Arbitrum Sepolia (421614) | 0x6e1E1667990876Fd1dbe707f1184e3dfc415734E |
The underlying (a paymaster that accepts USDC for gas) is commoditized (Pimlico, Circle, Biconomy, ZeroDev). Gas is one adapter among categorically distinct ones, not the thesis. See honest limits.
TimeboostAdapter
Priority inclusion in an Arbitrum Timeboost express lane: one lane, 60-second rounds, use-it-or-lose-it.is ICapabilityAdapter, Ownable. The payment and the round-control guard are on-chain; the real inclusion is off-chain via the el-proxy. grant reads currentRound() and resolvedRounds() to prove the laneOperator controls the current round, then commits to the consumer’s payload.
params | The consumer’s raw express-lane transaction (RLP), bound by keccak256(params) |
receipt | abi.encode(bytes32 commitment) (where commitment = keccak256(params)) |
| Events | InclusionGranted(address indexed consumer, bytes32 commitment, uint64 round), LaneOperatorUpdated(address indexed laneOperator), BrokerUpdated(address indexed broker) |
| Errors | NotBroker(), NoLaneControl(), ZeroAddress() |
| Admin | setLaneOperator(address), setBroker(address) |
| Chain | Address |
|---|---|
| Arbitrum Sepolia (421614) | 0xd229c21f1e582C2ebc436Ef03F59aa85502c9070 |
The adapter never writes to the auction (
transferExpressLaneController is ignored by Nitro in the initial release); it only reads round state. The Timeboost resale market has largely collapsed (arXiv:2509.22143), so Timeboost is a generality proof, not a demand claim. The guard reads the live ExpressLaneAuction at 0x991DbEDf…527D. See honest limits.AttestedAdapter
An optional provider gate that wraps any inner adapter:grant proceeds only if params carries a valid, unexpired EIP-712 attestation signed by the provider’s attestor key, then delegates to the inner adapter. It is the provider tightening its own adapter, not a coordinator in the path. is ICapabilityAdapter, Ownable, EIP712.
params | abi.encode(bytes innerParams, uint64 notAfter, bytes attestationSignature) |
receipt | The inner adapter’s receipt (it delegates to inner.grant) |
| Events | AttestationAccepted(address indexed consumer, bytes32 subject, uint64 notAfter), AttestorUpdated, BrokerUpdated, InnerUpdated |
| Errors | NotBroker(), ZeroAddress(), BadAttestation(), AttestationExpired() |
| Admin | setAttestor(address), setInner(address), setBroker(address) |
| Chain | Address |
|---|---|
| Arbitrum Sepolia (421614) | 0x3aE76f5cF105565c9966f518C22277ef9642758a (inner: AttestedAllocationInner) |
See also
ICapabilityAdapter: the interface these implement.- Sell a capability: the implementation rules and the worked grants.
- Deployments: all addresses per chain. Honest limits: the gas and Timeboost landmines.

