Documentation Index
Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
Use this file to discover all available pages before exploring further.
Looking for Contributors! This Skill needs an implementation.Contributing a Skill involves:
- Writing a reference implementation with full functionality
- Adding comprehensive tests
- Writing documentation with usage examples
See the ethers-provider Skill for an example of a complete Skill implementation.Interested? Open an issue or PR at github.com/evmts/voltaire.
Skill — Copyable reference implementation. Use as-is or customize. See Skills Philosophy.
Full ENS integration: registration, resolution, and record management.
Planned Implementation
Resolution
import { ENS } from './ENS.js';
const ens = ENS({ provider });
// Resolve name to address
const address = await ens.resolve('vitalik.eth');
// Reverse resolve address to name
const name = await ens.lookupAddress(address);
// Get text records
const twitter = await ens.getText('vitalik.eth', 'com.twitter');
const avatar = await ens.getAvatar('vitalik.eth');
Registration
// Check availability
const available = await ens.available('myname.eth');
// Get registration price
const price = await ens.rentPrice('myname', 365 * 24 * 60 * 60); // 1 year
// Register (2-step commit-reveal)
const commitment = await ens.makeCommitment({
name: 'myname',
owner: userAddress,
duration: 365 * 24 * 60 * 60,
secret: randomBytes(32),
});
await ens.commit({ commitment, signer });
// Wait 1 minute...
await ens.register({
name: 'myname',
owner: userAddress,
duration: 365 * 24 * 60 * 60,
secret,
signer,
});
Record Management
// Set address
await ens.setAddr({
name: 'myname.eth',
address: newAddress,
signer,
});
// Set text record
await ens.setText({
name: 'myname.eth',
key: 'com.twitter',
value: '@myhandle',
signer,
});
// Set content hash (IPFS)
await ens.setContentHash({
name: 'myname.eth',
hash: 'ipfs://Qm...',
signer,
});
Resources