Observed since 21 Oct, 11:29 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0xslots/contracts
Contract ABIs and addresses for 0xSlots protocol
Contract ABIs and addresses for the 0xSlots protocol, generated by
wagmi generate from the Foundry build and the deployment records in
apps/contracts/deployments.
pnpm add @0xslots/contracts viem
import { createPublicClient, http } from "viem";
import { anvil } from "viem/chains";
import { slotFactoryAbi, slotFactoryAddress } from "@0xslots/contracts";
const client = createPublicClient({ chain: anvil, transport: http() });
const factory = slotFactoryAddress[anvil.id]; // Address | undefined
if (factory) {
// The beacon implementation every slot proxy points at.
const implementation = await client.readContract({
address: factory,
abi: slotFactoryAbi,
functionName: "implementation",
});
}
Everything is also exported from @0xslots/contracts/slots.
| Export | Contract |
|---|---|
slotAbi | An individual Slot |
slotFactoryAbi | SlotFactory — deploys slots behind one beacon |
offerBookAbi | OfferBook — standing bids and the fill |
minimumTenureModuleAbi | MinimumTenureModule |
adLandAbi | AdLand |
slotCollectiveAbi, slotCollectiveFactoryAbi | SlotCollective — split + role-gated management — and its factory |
slotBoundNftAbi, slotBoundNftFactoryAbi, slotBoundNftWrapperAbi | Slot-bound NFT collections, their factory, and the wrapper for existing ERC-721s |
Per-chain maps, typed Partial<Record<number, Address>> — a contract is present
on exactly the chains that have a deployment record carrying a version:
slotFactoryAddress, offerBookAddress, minimumTenureModuleAddress,
adLandAddress, slotCollectiveFactoryAddress, slotImplementationAddress and
slotCollectiveImplementationAddress (the beacon implementations, not
individual slots). slotBoundNftFactoryAddress and slotBoundNftWrapperAddress
come straight from codegen, which only emits them when a record exists.
deployBlockOf(contract, chainId) returns the block a contract was deployed at —
the lower bound for any historical log query — or undefined where there is no
record.
knownModules[chainId] lists the modules a client can offer by name, and
findKnownModule(chainId, address) names one or returns undefined. Both are
derived from the deployment records, so a module appears on exactly the chains
it is deployed to.
import { CHAINS, DEFAULT_CHAIN, isDeployedOn } from "@0xslots/contracts";
CHAINS is derived from slotFactoryAddress, sorted local, then testnets, then
mainnets. Anvil is filtered out unless NODE_ENV === "development" — bundlers
inline NODE_ENV, so a production build drops it at compile time. The address
maps themselves are unconditional.
The current protocol is not deployed on a public chain yet. pnpm dev:local
deploys it to anvil (31337), and pnpm codegen in this package picks those
records up. Use the exported values rather than copying an address.
MIT
npm · 1 observations shown. Missing days are unknown.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-23 | 1 | 2026-10-23T12:22:26.9312188Z |
| Package / target | Requirement | Relationship |
|---|---|---|
viemEnvironment{
"local_name": "viem",
"alias": false,
"peer_metadata": null
} | 2.50.4 | runtime |
tsxEnvironment{
"local_name": "tsx",
"alias": false,
"peer_metadata": null
} | ^4.7.3 | development |
tsupEnvironment{
"local_name": "tsup",
"alias": false,
"peer_metadata": null
} | ^8.0.0 | development |
@wagmi/cliEnvironment{
"local_name": "@wagmi/cli",
"alias": false,
"peer_metadata": null
} | ^2.10.0 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.4.4 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^20.10.8 | development |
Source distribution
{
"shasum": "e1c6cd1281ac9c9622b7b7a53f2067e8b6560c12",
"tarball": "https://registry.npmjs.org/@0xslots/contracts/-/contracts-0.25.0.tgz",
"fileCount": 10,
"integrity": "sha512-yInKBFi1tVPbxDFFTslQMyjL3DDJ1QSiqjze5tSo8JojkU4NV7ZjEAA4NN4A2hMisNWZN5HGh57e7Q6DzQAyuA==",
"signatures": [
{
"sig": "MEUCIClWDposs2WRpd1Ca9oNYt1AX+wN8ox5ulVPSn/8i8wjAiEA74xlgwLX81dSs50sP9OXVhOfTIR/sMIruyW6kApAM48=",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 962912
}Observed since 21 Oct, 11:29 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:4b38247f051663af0d44aa134d45fea030e7c19d8c8fc8af1788dc4a635febe4